0

我的 JSON 对象看起来像这样:

{
    id: 1
    object:
        {
            object_id:1
            key_for_1: "value for object type 1"
        }
    type: "object_type_1"
 }

{
    id: 2
    object:
        {
            object_id:5
            key_for_23: "value for object type 23"
        }
    type: "object_type_23"
 }

所以,基本上我需要“类型”才能解析对象。有没有办法确保在获取“对象”之前可以获取“类型”的值?

JsonReader 具有与 GSON 几乎相同的方法。这是我解析它的方式:

public CustomObject(JsonReader reader) throws IOException {
    reader.beginObject();
    while (reader.hasNext()) {

        String name = reader.nextName();

        if (name.equals("id")) {
            clId = reader.nextDouble();
        } 

        else if (name.equals("object")) {
            innerObject = new InnerObject(reader);
        }

        else if (name.equals("type")) {
            type = reader.nextString();
        }
    }

    reader.endObject();
}

我不想只使用字符串生成器,因为我得到的实际 JSON 对象是巨大的(上面的只是一个示例)。我首先尝试了 StringBuilder,但发现很多内存不足问题,这就是我想迁移到 JsonReader 的原因。

任何帮助都是极好的。谢谢

4

1 回答 1

1

首先为了简化解析 JSON 对象,可以使用 org.json 库。其次,我认为这是一个无效的 JSON 对象结构。

您是否打算拥有一个 JSON 对象数组,其中每个项目(在本例中为数据)具有以下名称:值对?

{“数据”:[id:1对象:{object_id:5 key_for_23:“对象类型23的值”}类型:“object_type_23”},{}]

{

}

于 2015-07-28T16:42:54.817 回答