android - 在 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“数据”而不是“翻译”,但我不知道如何将代码修改为应有的样子?
解决方案
尝试这个:
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);
}
}
推荐阅读
- java - 已编译的 jar 文件中的 Java 资源路径
- reactjs - 如何检测 Next.js 中 URL 哈希的变化?
- linux - 运行 git clone 时出现错误:errno 10054
- django - Django + Angular = 全局变量
- php - 尝试有条件地实现 ElasticSearch 排序
- android - 如何构建指纹识别应用程序
- c# - 是否可以初始化属性更改值?
- python - 如何在保留空行的同时从 MD 文件中的每一行中删除前导和尾随空格?
- matlab - 从另一个向量中获取有序整数向量
- python - 在 Android Studio 上集成 Python 库 Spleeter