我正在寻找使用 GSon 库解析 json 的正确方法。到目前为止,我已经知道了两种方法:
假设我有一个这样的 json 字符串:
{
'Events' : [{
'name' : 'exp',
'date' : '10-10-2010',
'tags' : ["tag 1", "tag2", "tag3"]
},...more events...],
'Contacts' : [{
'name' : 'John Smith',
'date' : '10-10-2010',
'tags' : ["tag 1", "tag2", "tag3"]
},...more contacts...],
}
使用 JSONOjbect 按名称获取字段:
JsonElement jelement = new JsonParser().parse(jsonLine); JsonObject jobject = jelement.getAsJsonObject(); jobject = jobject.getAsJsonArray("Events"); JsonArray jarray = jobject.getAsJsonArray("Contacts"); jobject = jarray.get(0).getAsJsonObject();
使用 Gson 映射到实体
public class Container{ List<Event> Events; List<Contact> Contacts; } Container c = new GSon().fromJSon(jsonString,Container.class);
你能告诉我什么时候应该使用第一种方式或第二种方式吗?
我有一个 Web 服务可以返回多种复杂的 json 字符串,我需要从中获取数据。我该怎么办?