Dro*_*eer 7 java parsing json gson
我想出了具有挑战性的问题.
下面是json响应,其中key是可变的(GUID)
我该如何解析它?我已经尝试了Google Gson,但这不起作用.
{
"87329751-7493-7329-uh83-739823748596": {
"type": "work",
"status": "online",
"icon": "landline",
"number": 102,
"display_number": "+999999999"
}
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*ikO 13
如果您使用Gson,为了解析您的响应,您可以创建一个表示您的JSON数据的自定义类,然后您可以使用Map.
请注意,a Map<String, SomeObject>正是您的JSON所代表的,因为您有一个object,包含一对string和一些object:
{ "someString": {...} }
Run Code Online (Sandbox Code Playgroud)
所以,首先你的类包含JSON数据(伪代码):
class YourClass
String type
String status
String icon
int number
String display_number
Run Code Online (Sandbox Code Playgroud)
然后使用a解析您的JSON响应Map,如下所示:
Gson gson = new Gson();
Type type = new TypeToken<Map<String, YourClass>>() {}.getType();
Map<String, YourClass> map = gson.fromJson(jsonString, type);
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用您的方式访问所有值Map,例如:
String GUID = map.keySet().get(0);
String type = map.get(GUID).getType();
Run Code Online (Sandbox Code Playgroud)
注意:如果你只想要得到的GUID值,你不需要创建一个类YourClass,你可以使用相同的解析代码,而是使用通用Object的Map,即Map<String, Object>.