你好我调用一个服务,如果它包含多个它创建列表的对象,但是当它只包含一个对象时它会返回一个不是list []的单个对象,实际上我想用gson将它们转换成java类但是万一单个异常它抛出异常,但当它包含列表它工作正常我实际上需要将我的单个gSON字符串转换为数组,请帮助我..这是字符串
{
"response":{
"projects":{
"project":{
"ixWorkflow":1,
"sEmail":"j.a@loxvo.com",
"sPhone":"",
"ixProject":2,
"ixPersonOwner":2,
"fDeleted":false,
"sProject":"Project Default",
"fInbox":true,
"sPersonOwner":"junaid"
}
}
}
}
我希望它和
一样 {
"response":{
"projects":{
"project":[
{
"ixWorkflow":1,
"sEmail":"j.a@loxvo.com",
"sPhone":"",
"ixProject":6,
"ixPersonOwner":2,
"fDeleted":false,
"sProject":"project 2",
"fInbox":false,
"sPersonOwner":"junaid"
},
{
"ixWorkflow":1,
"sEmail":"j.a@loxvo.com",
"sPhone":"",
"ixProject":2,
"ixPersonOwner":2,
"fDeleted":false,
"sProject":"Project Default",
"fInbox":true,
"sPersonOwner":"junaid"
}
]
}
}
}
答案 0 :(得分:1)
参考https://stackoverflow.com/a/7284813/1105291
在将json传递给Gson进行对象转换之前,请尝试以下代码,如果您收到任何错误,请告诉我。只有我能看到的可能性才是例外。
JSONObject jsonObject = new JSONObject(responseString);
JSONObject projectsJsonObject = jsonObject.getJSONObject("response").getJSONObject("projects");
if(projectsJsonObject.getJSONArray("project") == null)
{
JSONArray jsonArray = new JSONArray();
jsonArray.put(projectsJsonObject.getJSONObject("project"));
projectsJsonObject.put("project", jsonArray);
}
//Pass jsonObject to Gson
答案 1 :(得分:0)
JsonParser parser = new JsonParser();
JsonObject o = (JsonObject)parser.parse("{\"a\": \"A\"}");