0

次のようなオブジェクトを GSON で解析するにはどうすればよいですか。

{ response: 
          { value1: 0, 
            value2: "string", 
            bigjsonObject: {
                 value1b: 0,
                 bigJSONArray: [...]
          }
 }

GSON のすべての例では、値の型があまり混合されていません。ドキュメントでは、これが GSON のデシリアライゼーションをどのように台無しにするかについて言及していますが、詳しく説明しておらず、GSON がこれをオブジェクトにマップできることを示唆しています。

私の現在のテストgson.fromJSON(inputstream, myObject.class)では、null 値を持つオブジェクトが返されるため、それらをマッピングしていません。

myObject.classタイプの ArrayList を含むbigJSONArray

public class myObject {

        private ArrayList<bigObjectModel> bigJSONArray;

        myObject(){};
}

私の仮定は、私の ArrayList オブジェクトには、探している型がないか、何かがあるということです。しかし、この場合、マッピングがどのように機能するかを誤解しています。

4

1 に答える 1

1

解析するには

{ response: 
      { value1: 0, 
        value2: "string", 
        bigjsonObject: {
             value1b: 0,
             bigJSONArray: [...]
      }
}

コンテナクラスが必要です

public class myObject {

    private int    value1;
    private String value2;
    private Foo    bigjsonObject;
}

クラス Foo の場所

public class Foo {

    private int value1b;
    private ArrayList<bigObjectModel> bigJSONArray
}

どのフィールドも省略でき、GSON はそれをスキップします

于 2013-08-30T13:29:50.117 に答える