我有以下JSON,我想得到" temp"和"压力" in" main"键, 但我不知道该怎么做。
答案 0 :(得分:1)
JSONObject mainJsonObject = yourJsonObject.getJSONObject("main");
float pressure = mainJsonObject.getFloat("pressure");
float tempMin = mainJsonObject.getFloat("temp_min");
float tempMax = mainJsonObject.getFloat("temp_max");
答案 1 :(得分:0)
String jsonString = ... //Your json string
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject mainObject = jsonObject.getJSONObject("main");
double temp = mainObject.getDouble("temp");
//And get other fields just like the line above.
<小时/> 您还可以使用
Gson
库,这使得解析jsons非常容易。
首先根据你的json定义你的模型:
public class JSON {
public Main main;
//...
public static class Main {
public double temp;
public int pressure;
//...
}
}
然后使用Gson
解析json字符串:
JSON object = new Gson().fromJson(jsonString, JSON.class);
double temp = object.main.temp;
答案 2 :(得分:0)
首先将您的json模型复制到JsonUtils以生成模型(类),然后您可以轻松地使用Gson来解析您的json并将其反序列化到您的类中。
例如,您可以看到此Gson Tutorial
答案 3 :(得分:0)
您需要获取root JSON对象,然后获取嵌套的“main”对象。
如果您提供JSON文件会更好。但是有了树结构,代码应该看起来像这样:
//Doing it inside try/catch block, because it may throw JSONException
try{
//Getting root JSON object
JSONObject rootJSON = new JSONObject(s);
//Getting nested "main" object from root object
JSONObject mainJSON = rootJSON.getJSONObject("main");
//Getting custom String from JSON object, say "temp"
String ourString = ourObject.getString("temp");
//Then you can use it whatever way you want
Log.e("JSONObject", ourString);
//Handling JSONException
} catch(JSONException e) {
e.printStackTrace();
}