将JSON字符串转换为JSON数组

时间:2013-12-11 11:50:47

标签: java json

你好我调用一个服务,如果它包含多个它创建列表的对象,但是当它只包含一个对象时它会返回一个不是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"
            }
         ]
      }
   }
}

2 个答案:

答案 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)

使用Google Gson

JsonParser parser = new JsonParser();
JsonObject o = (JsonObject)parser.parse("{\"a\": \"A\"}");