在Gson中创建一些哈希类型结构以访问json中的值,而不是创建自定义类

时间:2017-07-14 07:24:59

标签: java json gson android

如果我在一个更大的json中有一个json对象:

customer_data: {    
     details: {    
           personal_info: {    
                first: “George”  
                last: “Washington”                 
           }   
           order_details: {  
                 canceled: “true”   
                 id:”1234”  
       }  
}  

如果除了使用customer_data等遍历结构之外我只想要getAsJsonObject的特定值,那么如果我想避免创建CustomerData类,我还有其他方法可以访问它们不需要访问customer_data的所有数据?

注意:我正在使用Gson

1 个答案:

答案 0 :(得分:0)

Gson不支持通过XPath anology进行数据访问,如果您不想使用Data Binding,则只有两种方式:Tree Model或Streaming API。 最简单的是树模型:

JsonObject customerData = someBiggerJson.get("customer_data").getAsJsonObject(); String someInfo = customerData.get("some_field").gatAsString(); ...

如果使用Streaming API,你应该用你手中的json迭代到你需要的字段。

reader = new JsonReader((<input_stream>) reader.nextString() reader.beginObject() reader.endObject() etc..