【问题标题】:How to Acces nested Json Array data in java如何在 Java 中访问嵌套的 Json 数组数据
【发布时间】:2020-08-18 08:23:37
【问题描述】:

我试图从 Java 中的 JSON 中提取数据。

对如何访问这些带有蓝色下划线的 JSON 数据有任何想法,我猜它是嵌套的 JSON 数组?我知道 JSON 对象和 getstring(key),但它仅适用于红色下划线的这些数据。我想要那个蓝线数据。任何解决方案都会很棒。任何帮助都会对我有用,我在过去 5 天里一直在处理这个问题。 Java 代码

JSONObject object = (JSONObject) new JSONTokener(response).nextValue();

response 是一个包含 json 数据的字符串。

{
    "calories":115,
    "totalWeight":223.0,
    "dietLabels":["LOW_FAT"],
    "healthLabels":["VEGAN","VEGETARIAN","PEANUT_FREE","TREE_NUT_FREE","ALCOHOL_FREE","SULPHITE_FREE"],
    "cautions":["SULFITES"],
    "totalNutrients":{
        "ENERC_KCAL": {"label":"Energy","quantity":115.96,"unit":"kcal"},
        "FAT":{"label":"Fat","quantity":0.37910000000000005,"unit":"g"},
        "FASAT":{"label":"Saturated","quantity":0.06244,"unit":"g"},
        "FAMS":{"label":"Monounsaturated","quantity":0.01561,"unit":"g"},
        "FAPU":{"label":"Polyunsaturated","quantity":0.11373,"unit":"g"},
        "CHOCDF":{"label":"Carbs","quantity":30.796300000000002,"unit":"g"},
        "FIBTG":{"label":"Fiber","quantity":5.351999999999999,"unit":"g"},
        "SUGAR":{"label":"Sugars","quantity":23.169700000000002,"unit":"g"},
        "PROCNT":{"label":"Protein","quantity":0.5798,"unit":"g"},
        "CHOLE":{"label":"Cholesterol","quantity":0.0,"unit":"mg"}
    }
}

【问题讨论】:

  • 如果您在此处添加 json 的简化版本会很棒。在文本中
  • 我添加了 JSON 数据 @kelvin

标签: java android arrays json api


【解决方案1】:

你可以打电话

JSONArray dietLabels = jo.getJSONArray("dietLabels");

要访问 ENERC_KCAL 数据,您可以执行以下操作:

JSONObject totalNutrients = jo.getJSONObject("totalNutrients");
JSONObject ENERC_KCAL = totalNutrients.getJSONObject("ENERC_KCAL");

在 JsonObject 上,其中 jo 是主要的 json 对象(来自给定的 json 字符串),“dietLabels”是数组的名称。

【讨论】:

  • 我添加了一些有问题的更改,我也想访问“totalNutrients”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 2021-11-23
  • 2015-10-25
相关资源
最近更新 更多