迭代JSON数组对象

Bankzilla

我正在查询并返回一个json字符串,为了这个示例,我将发布一个示例。我试图弄清楚如何遍历值数组并找到标记为默认值的方法。

JSON范例

{
    "id": "333706819617",
    "guid": "4aCdriCG0WvfYEUkFf8_xqQEFxgwgNU8",
    "title": "Test entry",
    "author": "",
    "description": "Desc",
    "added": 1411702963000,
    "content": [
        {
            "audioChannels": 2,
            "audioSampleRate": 44100,
            "bitrate": 281656,
            "checksums": {
                "md5": "70DF3E21131F9F02C3F0A74F3664AB73"
            },
            "contentType": "audio",
            "duration": 43.258,
            "expression": "full",
            "fileSize": 1522986,
            "frameRate": 0.0,
            "format": "AAC",
            "height": 288,
            "isDefault": false,
            "language": "en",
            "sourceTime": 0.0,
            "url": "http://example.com/dZiASoxchRyS",
            "width": 352
        },
        {
            "audioChannels": 2,
            "audioSampleRate": 44100,
            "bitrate": 160000,
            "checksums": {
                "md5": "3AC622D31B9DED37792CC7FF2F086BE6"
            },
            "contentType": "audio",
            "duration": 43.206,
            "expression": "full",
            "fileSize": 866504,
            "frameRate": 0.0,
            "format": "MP3",
            "height": 0,
            "isDefault": false,
            "language": "",
            "sourceTime": 0.0,
            "url": "http://example.com/59M_PSFgGGXE",
            "width": 0
        }
    ],
    "thumbnails": [
        {
            "audioChannels": 0,
            "audioSampleRate": 0,
            "bitrate": 0,
            "checksums": {
                "md5": "BE8C98A07B3FE9020BFA464C42112999"
            },
            "contentType": "image",
            "duration": 0.0,
            "expression": "full",
            "fileSize": 20379,
            "frameRate": 0.0,
            "format": "JPEG",
            "height": 256,
            "isDefault": true,
            "language": "",
            "sourceTime": 0.0,
            "url": "http://img.example.com/waveform.jpg",
            "width": 256
        }
    ]
}

我将JSON字符串转换为 JSONObject

JSONObject mediaObject = new Gson().fromJson(mediaString, JSONObject.class);
String content = mediaObject.optString("content");

当我输出时content,返回以下内容。

{values=[{nameValuePairs={audioChannels=2.0, audioSampleRate=44100.0, bitrate=281656.0, checksums={nameValuePairs={md5=70DF3E21131F9F02C3F0A74F3664AB73}}......

如何正确浏览内容的值并找到的值isDefault在示例JSON中,没有内容,isDefault = true因此默认为第一个对象。

似乎我只能将值定位为字符串,我必须强制转换contentJSONArray吗?

编辑:我似乎无法转换mediaObject.content为JSONArray。mediaObject.optJSONArray("content")返回null。我也尝试过将其作为字符串获取,然后转换为JSONArray而不占优势。

编辑2:发现数据的问题是什么,当我用gson解析json时,它弄乱了最终输出的数据。

因此,我从更改new Gson().toJson(jsonObject);jsonObject.toString()),现在可以使用来定位数组optJSONArray为了将它们的数据返回到JSONObject中,我使用了JSONObject mediaObject = new JSONObject(mediaString);

GSON正在更改数据

恩里科

无需从JSONObject中提取内容的字符串值,而是可以获取JSONArray

JSONArray content = mediaObject.getJSONArray("content");

现在,您可以使用常规的for循环遍历数组中的对象

for(int i = 0; i < content.length(); i++) {
    JSONObject mediaItem = content.getJSONObject(i);
    boolean itemIsDefault = mediaItem.getBoolean("isDefault");
}

这是所有JSONObject方法JSONArray方法的链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用节点js迭代json数组对象

来自分类Dev

使用节点js迭代json数组对象

来自分类Dev

如何使用JavaScript .forEach迭代JSON对象和JSON数组

来自分类Dev

.map()迭代对象数组

来自分类Dev

在 C# 中迭代 JSON 对象数组名称值对

来自分类Dev

迭代对象的对象以创建数组

来自分类Dev

在角度迭代JSON数组

来自分类Dev

在reactjs中迭代对象数组

来自分类Dev

forEach和map函数迭代对象的嵌套json数组并创建一个新数组

来自分类Dev

PHP通过数组对象迭代对象

来自分类Dev

在对象中迭代对象数组 - javascript?

来自分类Dev

如何使用GSON迭代JSON数组并从中提取每个JSON对象?

来自分类Dev

带有无密钥JSON对象的JSON数组的Java Android迭代

来自分类Dev

Javascript:迭代对象数组并形成新数组

来自分类Dev

多维数组JSON PHP迭代

来自分类Dev

多维数组JSON PHP迭代

来自分类Dev

从PHP中回显的json编码数组迭代javascript对象

来自分类Dev

加载json并显示在#each块中;未捕获的错误:{#each}仅迭代类似数组的对象

来自分类Dev

如何在Angular中的json对象内迭代数组值

来自分类Dev

Android:如何在同一个文件中迭代多个JSON对象数组

来自分类Dev

从PHP中回显的json编码数组迭代javascript对象

来自分类Dev

我通过Jade中的JSON对象数组进行迭代有什么问题?

来自分类Dev

如何在批处理脚本中从 JSON 数组文件中迭代对象

来自分类Dev

JSON 对象数组不为空但无法使用 foreach 进行迭代,显示零长度

来自分类Dev

数组/列表迭代,无需额外的对象分配

来自分类Dev

通过多次迭代更新对象数组

来自分类Dev

Ruby,以正确的顺序迭代对象数组

来自分类Dev

包含可迭代对象的numpy数组

来自分类Dev

如何使用JSTL迭代对象数组的ArrayList?

Related 相关文章

  1. 1

    使用节点js迭代json数组对象

  2. 2

    使用节点js迭代json数组对象

  3. 3

    如何使用JavaScript .forEach迭代JSON对象和JSON数组

  4. 4

    .map()迭代对象数组

  5. 5

    在 C# 中迭代 JSON 对象数组名称值对

  6. 6

    迭代对象的对象以创建数组

  7. 7

    在角度迭代JSON数组

  8. 8

    在reactjs中迭代对象数组

  9. 9

    forEach和map函数迭代对象的嵌套json数组并创建一个新数组

  10. 10

    PHP通过数组对象迭代对象

  11. 11

    在对象中迭代对象数组 - javascript?

  12. 12

    如何使用GSON迭代JSON数组并从中提取每个JSON对象?

  13. 13

    带有无密钥JSON对象的JSON数组的Java Android迭代

  14. 14

    Javascript:迭代对象数组并形成新数组

  15. 15

    多维数组JSON PHP迭代

  16. 16

    多维数组JSON PHP迭代

  17. 17

    从PHP中回显的json编码数组迭代javascript对象

  18. 18

    加载json并显示在#each块中;未捕获的错误:{#each}仅迭代类似数组的对象

  19. 19

    如何在Angular中的json对象内迭代数组值

  20. 20

    Android:如何在同一个文件中迭代多个JSON对象数组

  21. 21

    从PHP中回显的json编码数组迭代javascript对象

  22. 22

    我通过Jade中的JSON对象数组进行迭代有什么问题?

  23. 23

    如何在批处理脚本中从 JSON 数组文件中迭代对象

  24. 24

    JSON 对象数组不为空但无法使用 foreach 进行迭代,显示零长度

  25. 25

    数组/列表迭代,无需额外的对象分配

  26. 26

    通过多次迭代更新对象数组

  27. 27

    Ruby,以正确的顺序迭代对象数组

  28. 28

    包含可迭代对象的numpy数组

  29. 29

    如何使用JSTL迭代对象数组的ArrayList?

热门标签

归档