首页 > 解决方案 > 在 Android 中使用 3 层(对象、数组、字符串)解析 JSON

问题描述

我对解析 JSON 对象并不是很熟悉,我真的需要你们的帮助。我知道我正在做的解析是错误的,并且在在线阅读有关 Android Studio 解析的资源后我不明白。

下面的代码是我项目的解析部分。

public void onResponse(JSONObject response) {
        try {
            JSONArray jsonArray = response.getJSONArray("translations");

            for (int i = 0;  i < jsonArray.length(); i++ ) {
                JSONObject translations = jsonArray.getJSONObject(i);

                String translatedText = translations.getString("translatedText");

                textView.append(translatedText);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

我要解析的 JSON 对象如下:-

{
  "data": {
    "translations": [
      {
        "translatedText": "queso"
      }
    ]
  }
}

我被告知我的代码不起作用,因为 JSON 的第一级是 JSONObject“数据”而不是“翻译”,但我不知道如何将代码修改为应有的样子?

标签: androidjsonparsinggson

解决方案


尝试这个:

JSONObject jsonData = response.getJSONObject("data");
if (jsonData != null) {
  JSONArray jsonArray = jsonData.getJSONArray("translations");

  for (int i = 0;  i < jsonArray.length(); i++ ) {
    JSONObject translations = jsonArray.getJSONObject(i);

    String translatedText = translations.getString("translatedText");

    textView.append(translatedText);
  }
}

推荐阅读