java如何遍历json 请具体点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何遍历json 请具体点相关的知识,希望对你有一定的参考价值。
json是字符串,java 没有提供API遍历json吧,要借助jar包,也就是第三方的API,对json格式的字符串或是java对象之间的转换,比如:一个json格式的字符串,用第三方API(比如gson或jackjson)对json格式字符串进行转换为List类型的,然后用for循环对这list 遍历输出即可,其它对象也是可以的,自定义的实体也行,gson或jackjson有对应的方法能做到 参考技术A 使用递归方法.具体百度搜一下 改下节点名[node]就行
不会的话.告诉我你的节点名
如何在java中遍历json对象的json数组
【中文标题】如何在java中遍历json对象的json数组【英文标题】:How to loop through json array of json object in java 【发布时间】:2019-05-16 09:29:36 【问题描述】:我正在尝试遍历 json 文件并找到特定 json 对象的值。 这是我的示例 json:
"diagram":[
"size":"width":30,"height":20,"color":"blue","id":1,
"color":"red","id":2,
"size:"height":30", "id":3
]
我想做的是遍历文件并找到“id”元素。
我使用下面的代码将 JsonFile 转换为 JsonObject 并获取“图表”对象的值
JSONArray jsonArray = new JSONArray();
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("D:/test.json"));
JSONObject jsonObj = (JSONObject) obj;
for(Iterator iterator = jsonObj.keySet().iterator(); iterator.hasNext();)
String diagramKey = (String) iterator.next();
jsonArray.put(jsonObj.get(diagramKey));
通过上面的代码,我能够获取图表对象的值,并将其放入 jsonArray
当我尝试打印数组对象时,我得到的输出为
[[
"size":"width":30,"height":20,"color":"blue","id":1,
"color":"red","id":2,
"size:"height":30", "id":3
]]
jsonArray 长度为 1。
如何遍历上面的jsonArray并找到每个单独元素的id
【问题讨论】:
在您的输入中,图表是一个包含多个对象的数组。在您的输出中,您有一个这些数组的数组。到目前为止,您似乎正在处理一个图表,因此您的输出数组包含一个数组。你可以遍历那个内部数组,你会找到它包含的对象的三个 id 你的 json 格式不正确 【参考方案1】:Verify your JSON too and check below code.
public class MyTest
public static void main(String[] args) throws JSONException
String str = "\r\n" +
" \"diagram\": [\r\n" +
" \"size\": \r\n" +
" \"width\": 30,\r\n" +
" \"height\": 20\r\n" +
" ,\r\n" +
" \"color\": \"blue\",\r\n" +
" \"id\": 1\r\n" +
" ,\r\n" +
" \r\n" +
" \"color\": \"red\",\r\n" +
" \"id\": 2\r\n" +
" ,\r\n" +
" \r\n" +
" \"size\": \r\n" +
" \"height\": 30\r\n" +
" ,\r\n" +
" \"id\": 3\r\n" +
" \r\n" +
" ]\r\n" +
"";
JSONObject jo = new JSONObject(str);
final JSONArray geodata = jo.getJSONArray("diagram");
int arrLength = geodata.length();
for(int i = 0; i< arrLength;i++)
jo = geodata.getJSONObject(i);
System.out.println(jo.get("id"));
【讨论】:
【参考方案2】:您的 json 格式错误。 您始终可以使用在线工具验证您的 json 格式
https://jsonformatter.curiousconcept.com/ https://jsonformatter.org/正确的json格式
"diagram":[
"size":
"width":30,
"height":20
,
"color":"blue",
"id":1
,
"color":"red",
"id":2
,
"size":
"height":30
,
"id":3
]
【讨论】:
以上是关于java如何遍历json 请具体点的主要内容,如果未能解决你的问题,请参考以下文章