2016-12-19 9 views
-1

私はGSONをJavaのJSONパーサーとして持っていますが、キーは常に同じではありません。 たとえば、私は次のJSONを持っています:gsonでjsonツリーを解析する

{ 
     "message":"....", 
     "categories_sorted": [ 
      { 
       "550e8400-e29b-41d4-a716-446655440000": [ 
       { 
        "550e8400-e29b-41d4-a716-446655443333": [ 
        { 
         "550e8400-e29b-41d4-a716-446655448964": [] 
        } 
        ] 
       }, 
       { 
        "550e8400-e29b-41d4-a716-446655443334": [] 
       } 
       ] 
      }, 
      { 
       "550e8400-e29b-41d4-a716-446655440023": [ 
       { 
        "550e8400-e29b-41d4-a716-446655442344": [] 
       } 
       ] 
      } 
      ] 
     } 

私はこのツリー "categories_sorted"を解析する必要があります。私のJavaのPOJOオブジェクト:

public class CategoryPOJO { 

    @SerializedName("message") 
    @Expose 
    private String message; 

    @SerializedName("categories_sorted") 
    @Expose 
    private JsonArray sortedCategoryItems; 

....... 
Getters and setters 
} 
+0

を、私は意思決定のおおよそのバージョンを見つけましたが、彼らは私の場合には リンクは動作しません:[リンク](https://gist.github.com/patrickbaumannを/ 897492) –

答えて

-1

は、あなたがこのReferenceLinkためGSONデシリアライザの方法をしなければならないPOJOクラス(GSONとJSONのオプションを選択)

+0

私は以前このリソースを見てきました。 私のキーはダイナミックなので、私には適していません –

0

を取得するためのjsonschema2pojo.orgのリソースを参照してください。あなたは例えば、このようなカスタムを持っている:

@Override 
public User deserialize(JsonElement json, Type type, 
         JsonDeserializationContext context) throws JsonParseException { 

     return new CategoryPOJO(
      json.getAsJsonPrimitive().getAsInt(), 
      json.getAsString(), 
      json.getAsInt(), 
      (CategoryPOJO)context.deserialize(json.getAsJsonPrimitive(), 
      CategoryPOJO.class)); 
} 
関連する問題