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 に答える