java - 在android中读取嵌套的json字符串

标签 java android json

我使用以下代码将字符串转换为 json 并解析它。

String sb= {"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"api_key": "c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e", "homeAddress": "kathmandu", "resource_uri": "/api/ca/entry/1/", "username": "sumit"}]}
    try {

                    JSONObject jsonObject = new JSONObject(sb);
                    JSONObject object = jsonObject.getJSONObject("objects");  
                    String api_key= object.getString("api_key");  
                    Toast.makeText(HelloWorldActivity.this, api_key, Toast.LENGTH_SHORT).show();

        } catch (JSONException e) {
                             e.printStackTrace();
                            }

按照一些教程,我尝试解析 json,但无法解析它。例如:我想将 api_key 返回为 c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e

我在上面的代码中犯了任何错误

最佳答案

始终使用 JSONLint 或类似网站来正确格式化您的 JSON。

你的 JSON 是这样的

{
    "meta": {
        "limit": 20,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 1
    },
    "objects": [
        {
            "api_key": "c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e",
            "homeAddress": "kathmandu",
            "resource_uri": "/api/ca/entry/1/",
            "username": "sumit"
        }
    ]
}

这里的“对象”将返回数组而不是对象。

将您的代码更改为以下内容。

    try {

            JSONObject jsonObject = new JSONObject(sb);
            JSONArray array = jsonObject.getJSONArray("objects");

            String key = array.getJSONObject(0).getString("api_key");
            String uname = array.getJSONObject(0).getString("username");
            Toast.makeText(HelloWorldActivity.this, username + " " + key,
                    Toast.LENGTH_SHORT).show();

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

关于java - 在android中读取嵌套的json字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080952/

相关文章:

java - 通过代码访问可绘制形状的属性

c# - 卸载 "eager-loaded"属性导致返回 json 数据时出现问题

android - Xamarin.InAppBilling (2.2.0) 调用了 Android BuyProduct() 但有时未调用回调 - 如何诊断/修复根本原因?

php, json_encode, 带有一个 "left join"查询的嵌套数组

c# - 如何获取 JSON 格式的服务器响应?

java - JSON 对象中值的顺序是否重要?

c# - 如何根据URL检查文件创建日期?

java - 使用 Oracle CachedRowSet 获取时间戳

java - Prepare 语句出现无效的列索引错误

java - 如何在 Android 中全局声明一个资源