我有一个看起来像这样的json
{response:{"status":{"....."},data:[{"name":"Alice","id":"123"},{"name":"Jack","id":"345"},......]}
Run Code Online (Sandbox Code Playgroud)
解析它的类如下所示: -
public class TheData{
public List<Users> data;
}
public class Users{
public String name;
public String id;
}
Run Code Online (Sandbox Code Playgroud)
然后:-
TheData theData=gson.fromJson(jsonresponse,TheData.class)
Run Code Online (Sandbox Code Playgroud)
好吧这一切都很简单,但json包含在"响应"标签中.我可以为同一个创建另一个类并解析它,但是有任何其他方法我可以用GSON处理它.
由于某些我现在不知道的原因,Gson对象将您的JSON字符串解析为基元.
相反,使用JsonParser获得JsonElement的JsonObject,从中可以检索内"response" JsonObject.
// after some cleanup of the string
String str = "{\"response\":{\"status\":{\"id\":45},\"data\":[{\"name\":\"Alice\",\"id\":123},{\"name\":\"Jack\",\"id\":345}]}}";
JsonParser parser = new JsonParser();
JsonObject element = (JsonObject)parser.parse(str);
JsonElement responseWrapper = element.get("response");
Gson gson = new Gson();
TheData data = gson.fromJson(responseWrapper, TheData.class);
System.out.println(data);
Run Code Online (Sandbox Code Playgroud)
随着一些toString()添加,打印
[[name = Alice, id = 123], [name = Jack, id = 345]]
Run Code Online (Sandbox Code Playgroud)
所述Gson对象可以解析内JsonElement作为TheData对象,忽略status字段.
| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |