如何将JSON响应转换为字符串数组

时间:2019-03-04 09:08:37

标签: java android json

这是我从OpenWeatherMap收到的JSON响应:

{
  "coord": {
    "lon": 85.84,
    "lat": 20.26
  },
  "weather": [
    {
      "id": 721,
      "main": "Haze",
      "description": "haze",
      "icon": "50d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 305.15,
    "pressure": 1007,
    "humidity": 70,
    "temp_min": 305.15,
    "temp_max": 305.15
  },
  "visibility": 5000,
  "wind": {
    "speed": 4.1,
    "deg": 170
  },
  "clouds": {
    "all": 20
  },
  "dt": 1551686400,
  "sys": {
    "type": 1,
    "id": 9113,
    "message": 0.0037,
    "country": "IN",
    "sunrise": 1551659668,
    "sunset": 1551702153
  },
  "id": 1275817,
  "name": "Bhubaneswar",
  "cod": 200
}

虽然我可以通过下面的代码使用Weather,但无法将main转换为array。无论如何,我可以将加粗的响应转换为数组或字符串。

JSONObject jsonObject = new JSONObject(result);
            String weatherInfo = jsonObject.getString("weather");

            JSONArray arr = new JSONArray(weatherInfo);




            for(int i=0;i<arr.length();i++)
            {
                JSONObject jsonPart = arr.getJSONObject(i);
                String main = jsonPart.getString("main");
                String description =jsonPart.getString("description");

                if(main !="" && description !="")
                {
                    message += main + " : " + description + "\r\n";

                }


            }

2 个答案:

答案 0 :(得分:1)

建议是,不要手动解析JSON。使用Gson之类的第三方库来解析JSON。这样,您就不会遇到任何拼写错误,并让库为您处理解析。

答案 1 :(得分:0)

将您的json字符串粘贴到this网站,并生成您的pojo。使用Gson解析您的字符串并绑定到生成的pojo。