Java 对多个POJO集合的JSON解析

Java 对多个POJO集合的JSON解析,java,json,gson,pojo,Java,Json,Gson,Pojo,我需要使用GSON以某种方式将单个json字符串转换为特定类型的多个对象 我有一个json字符串的格式(下面包含2个,但可能有100个) 现在,我想将上述内容转换为映射到字符串每个部分的pojo实例。假设POJO被称为网站。然后我需要将json字符串拆分为2个网站对象 我在考虑使用某种标记器拆分json字符串,然后在每个部分应用一些json逻辑。我假设在将任何json应用到pojo转换之前必须这样做 我似乎找不到这样做的方法。请告知 非常感谢将json反序列化为java pojo,请尝试json

我需要使用GSON以某种方式将单个json字符串转换为特定类型的多个对象

我有一个json字符串的格式(下面包含2个,但可能有100个)

现在,我想将上述内容转换为映射到字符串每个部分的pojo实例。假设POJO被称为网站。然后我需要将json字符串拆分为2个网站对象

我在考虑使用某种标记器拆分json字符串,然后在每个部分应用一些json逻辑。我假设在将任何json应用到pojo转换之前必须这样做

我似乎找不到这样做的方法。请告知


非常感谢将json反序列化为java pojo,请尝试json库。这是一个很好的解决方案。尽管我会使用flexjson进行序列化

String json = "{bool:true,integer:1,string:\"json\"}";  
JSONObject jsonObject = JSONObject.fromObject( json );  
BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );  
比娜是你的主顾

如果您有多个对象,如示例中所示,请执行以下操作

String json = "{'data':[{'name':'Wallace'},{'name':'Grommit'}]}";
JSONArray jsonArray = (JSONArray) net.sf.json.JSONSerializer.toJSON(json);
for (int i = 0; i < jsonArray.size(); i++) {
   JSONObject jsonObject = (JSONObject) jsonArray.get(i);
   BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );
   //do whatever you want with each object
}
String json=“{'data':[{'name':'Wallace'},{'name':'Grommit'}]}”;
JSONArray JSONArray=(JSONArray)net.sf.json.JSONSerializer.toJSON(json);
for(int i=0;i
假设您有这样一个班级网站:

class Website {
    String domain;
    String geo;
}
首先将字符串修复为有效的json:

String input = "{\"domain\" : \"name1\", \"geo\": \"us\"} {\"domain\" : \"name2\", \"country\" : \"uk\"}";

String json = "[" + input + "]";
然后使用标准gson技术转换为网站列表:

java.lang.reflect.Type t = new TypeToken<List<Website>>(){}.getType();
List<Website> websites = new Gson().fromJson(json, t);
java.lang.reflect.Type t=new-TypeToken(){}.getType();
List websites=new Gson().fromJson(json,t);

这不是JSON,原因有二:键和字符串需要引用;这两个JSON对象需要在一个数组中,即
[{…},{…}]
yes不幸地被gson卡住了。虽然如果有其他选择,我总是可以尝试说服。是的,不幸的是,我坚持使用gson。虽然如果有其他选择,我总是可以尝试说服别人@JeremyP每个条目都将作为一个单独的json对象返回,而不是作为一个数组返回到浏览器进行显示。你是对的,他们会有引语,我只是把它们漏掉了,很抱歉。那么有什么关于如何进步的建议吗?
java.lang.reflect.Type t = new TypeToken<List<Website>>(){}.getType();
List<Website> websites = new Gson().fromJson(json, t);