遍历json对象 java,如何遍历Java中的json对象

I am trying to iterate through my json file and get required details

here is my json

{

"000": {

"component": "c",

"determinantType": "dt",

"determinant": "d",

"header": "h",

"determinantvalue": "null"

},

"001": {

"component": "t",

"determinantType": "i",

"determinant":"ld",

"header": "D",

"determinantvalue": "null"

},

"002": {

"component": "x",

"determinantType": "id",

"determinant": "pld",

"header": "P",

"determinantValue": "null"

}}

my java code

FileReader file = new FileReader("test.json");

Object obj = parser.parse(file);

System.out.println(obj);

JSONObject jsonObject = (JSONObject) obj;

JSONArray msg = (JSONArray) jsonObject.get(key);

Iterator iterator = msg.iterator();

while (iterator.hasNext()) {

System.out.println(iterator.next());

String component = (String) jsonObject.get("component");

System.out.println("component: " + component);

As you can see in the code I am importing my json file and trying to get next elements and printing components out of it , I should also print header,determinant and determinant value as well

Thank you

解决方案

You don't have an array - you have properties with names of "000" etc. An array would look like this:

"array": [ {

"foo": "bar1",

"baz": "qux1"

}, {

"foo": "bar2",

"baz": "qux2"

}

]

Note the [ ... ] - that's what indicates a JSON array.

You can iterate through the properties of a JSONObject using keys():

// Unfortunately keys() just returns a raw Iterator...

Iterator keys = jsonObject.keys();

while (keys.hasNext()) {

Object key = keys.next();

JSONObject value = jsonObject.getJSONObject((String) key);

String component = value.getString("component");

System.out.println(component);

}

Or:

@SuppressWarnings("unchecked")

Iterator keys = (Iterator) jsonObject.keys();

while (keys.hasNext()) {

String key = keys.next();

JSONObject value = jsonObject.getJSONObject(key);

String component = value.getString("component");

System.out.println(component);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值