首页 / JSON / java – 迭代JSON数组对象
java – 迭代JSON数组对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 迭代JSON数组对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2700字,纯文字阅读大概需要4分钟。
内容图文
我正在查询并返回一个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");
当我输出内容时,它返回以下内容.
{values=[{nameValuePairs={audioChannels=2.0, audioSampleRate=44100.0, bitrate=281656.0, checksums={nameValuePairs={md5=70DF3E21131F9F02C3F0A74F3664AB73}}......
如何正确浏览内容的值并找到isDefault的值?在示例JSON中没有isDefault = true的内容,因此默认为第一个对象.
似乎我只能将值作为字符串来定位,我是否必须将内容转换为JSONArray?
编辑:我似乎无法将mediaObject.content转换为JSONArray. mediaObject.optJSONArray(“content”)返回null.我也尝试将它作为一个字符串,然后转换为JSONArray,没有占上风.
编辑2:发现数据的问题是什么,当我用gson解析json时,它弄乱了最终输出的数据.
所以我改成了新的Gson().toJson(jsonObject);到jsonObject.toString())我现在可以使用optJSONArray来定位数组.为了将它们的数据恢复到JSONObject,我使用了JSONObject mediaObject = new JSONObject(mediaString);
GSON正在改变这些数据
解决方法:
您可以改为使用JSONArray,而不是从JSONObject中提取内容的字符串值
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 methods和JSONArray methods的链接
内容总结
以上是互联网集市为您收集整理的java – 迭代JSON数组对象全部内容,希望文章能够帮你解决java – 迭代JSON数组对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。