java - Android中解析JSON数组和对象

标签 java android arrays json

JSON 如下所示:

[{
    "pmid": "2",
    "name": " MANAGEMENT",
    "result": "1",
    "properties": [
        {
            "prop_id": "32",
            "prop_name": "Bonneville",
            "address": "122 Lakeshore",
            "city": "Ripley",
            "state": "OH",
            "zip": "11454",
            "lat": "41.123",
            "long": "-85.5034"
        }
    ]
}]

我尝试在 Android 中使用以下 Java 代码解析它:

JSONObject jObj = null; 尝试 { jObj = new JSONObject(jsonStr);

    // We get weather info (This is an array)
    JSONArray jArr = jObj.getJSONArray("properties");

    // We use only the first value
    //JSONObject JSONWeather = jArr.getJSONObject(0);
    JSONObject c = jArr.getJSONObject(0);
    String name = c.getString(TAG_NAME);
    String email = c.getString(TAG_EMAIL);
    String phone = c.getString(TAG_PHONE);
} catch (JSONException e) {
    e.printStackTrace();
}

return null;

但我没有得到任何结果。我怎样才能成功解析这个JSON?我正在使用 Android Studio。

此外,如果数组中有多个部分,我们如何确保它们中的每一个都被打印出来?

最佳答案

您的 JSON 字符串以 JSONArray 开头。

这里是示例代码,请尝试一下。

    JSONArray mJsonArray = new JSONArray(jsonStr);
    JSONObject mJsonObject = mJsonArray.getJSONObject(0);

    String pmid = mJsonObject.getString("pmid");
    String name = mJsonObject.getString("name");
    String result = mJsonObject.getString("result");


    JSONArray mJsonArrayProperty = mJsonObject.getJSONArray("properties");
    for (int i = 0; i < mJsonArrayProperty.length(); i++) {
        JSONObject mJsonObjectProperty = mJsonArrayProperty.getJSONObject(i);

        String prop_id = mJsonObjectProperty.getString("prop_id");
        String prop_name = mJsonObjectProperty.getString("prop_name");
        String address = mJsonObjectProperty.getString("address");
        String city = mJsonObjectProperty.getString("city");
        String state = mJsonObjectProperty.getString("state");
        String zip = mJsonObjectProperty.getString("zip");
        String lat = mJsonObjectProperty.getString("lat");
        String lon = mJsonObjectProperty.getString("long");
    }

检查Android JSON Parsing Tutorial

关于java - Android中解析JSON数组和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736419/

相关文章:

java - Spring Boot MongoDB Persistance MappingException : Cannot convert Java. util.ArrayList 到类 java.lang.Object 的实例中

java - Cassandra - 用于选择和更新的分布式行锁定

c# - 同一个 RelativeLayout 中的多个 ListView

java - 如何创建具有不同引用的同一对象的副本?

javascript - 如何使用 Every() 在 Javascript 中返回一个新数组?

java - Socket.accept() 抛出空指针异常

java - While 循环不能正常工作?

android - 按下放大镜时如何调用onSearchRequested

c++ - 为什么迭代 2D 数组行专业比列专业更快?

java - 在大数组中搜索最小数字