我正在使用HttpURLConnection
将Json
从网络转换为字符串。
我将网络字符串存储到BufferedReader
中,之后将其存储在新的String
中。
字符串在这里: -
{"coord":{"lon":72.85,"lat":19.01},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02d"}],"base":"stations","main":{"temp":302.131,"pressure":1024.24,"humidity":84,"temp_min":302.131,"temp_max":302.131,"sea_level":1024.75,"grnd_level":1024.24},"wind":{"speed":4.77,"deg":302.001},"clouds":{"all":12},"dt":1459677392,"sys":{"message":0.0102,"country":"IN","sunrise":1459645229,"sunset":1459689786},"id":1275339,"name":"Mumbai","cod":200}
如何将其转换为JsonObject。
我也看到了这个答案(.call
),但它没有用。
这是代码: -
BufferedReader br= new BufferedReader(new InputStreamReader(conn.getInputStream()));
String localoutput;
while ((localoutput = br.readLine()) != null)
{
output=localoutput+output;
}
conn.disconnect();
}
catch(Exception e)
{
System.out.println(e);
}
JsonReader jsonReader = Json.createReader(new StringReader(output));
JsonObject object = jsonReader.readObject();
jsonReader.close();
try {
String cityname = object.getString("name");
System.out.println(cityname);
}
catch (Exception e)
{
e.printStackTrace();
}
这里的输出是我之前提到过的字符串。 我没有在控制台中获取输出城市名称。
答案 0 :(得分:1)
使用this库。它提供了非常简单的API,将String转换为json对象只需执行以下操作:
try {
JSONObject object = new JSONObject(yourJsonString);
} catch (Exception e){
e.printStackTrace();
}