【问题标题】:Get a String from an Array in JSON in Android Studio在 Android Studio 中从 JSON 数组中获取字符串
【发布时间】:2015-06-05 22:46:29
【问题描述】:

我有问题。我想从具有 3 个数组的 JSONObject 访问一个字符串(“名称”),我正在尝试访问这 3 个数组中的一个。

这是更大的数组。

{"id":[{"id":"2","name":"Yuliem"}],"success":1,"message":"Product successfully created."}

我想访问名为id的,然后访问“name”中的数据。

TAG_CODE = hospitalSelectedId;
        hspCode = hospitalSelectedId;
        TAG_IMEI = imei;

        //Build the parameters
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("code", TAG_CODE));
        params.add(new BasicNameValuePair("imei", TAG_IMEI));
        params.add(new BasicNameValuePair("long", String.valueOf(lon)));
        params.add(new BasicNameValuePair("lat", String.valueOf(lat)));
        params.add(new BasicNameValuePair("alt", String.valueOf(alt)));

        //Getting JSON Object
        JSONObject json = jsonParser.makeHttpRequest(url_login, "POST", params);

        //Check logcat for response
        Log.d("Create Response", json.toString());

        try {
            success = json.getInt(TAG_SUCCESS);
            //userId = ;
            Log.d("User's id: ", String.valueOf(json.get("id")));

            if (success == 1) {
                // finish closes the current Activity
                // finish();

                Intent goHome = new Intent(LoginActivity.this, HomepageActivity.class);
                startActivity(goHome);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

前面的代码给了我

[{"id":"2","name":"Yuliem"}]

但我不知道如何访问“名称”。请帮忙:)

【问题讨论】:

    标签: java android arrays json jsonobject


    【解决方案1】:

    如果你想获得“Yuliem”,你可以这样做:

    String json = "{\"id\":[{\"id\":\"2\",\"name\":\"Yuliem\"}],\"success\":1,\"message\":\"Product successfully created.\"}";
    JSONObject obj = new JSONObject(json);
    JSONArray array = (JSONArray) obj.get("id");
    JSONObject innerObj = (JSONObject) array.get(0);
    Log.d("User's name: ",innerObj.get("name"));
    

    【讨论】:

    • 为什么放“\”?我使用 php 从数据库中获取数组。如果不添加 \,我怎么能做同样的事情?
    • 这只是字符串的 java 转义字符表示法。如果你有你的字符串动态,你不需要\"在你的代码中你说Log.d("User's id: ", String.valueOf(json.get("id")));结果=>[{"id":"2","name":"Yuliem"}]在我的代码中是同一行=>(JSONArray) obj.get("id");
    • 哦,谢谢!它奏效了,很抱歉延迟了答案,但我只是有机会去我的办公桌前做了。像魅力一样工作!
    猜你喜欢
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多