如何在android中的另一个中获取JSON对象

时间:2016-08-18 16:05:03

标签: android json jsonobject

我有以下JSON,我想得到" temp"和"压力" in" main"键, 但我不知道该怎么做。

this is my JSON :

4 个答案:

答案 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();
    }