嗨,我正在尝试使用Json Simple选择“奶酪”条目,但是当我尝试选择它时,似乎返回了“ null”。对如何做到这一点有一些建议是很好的?
这是Json示例:
String s="[\"coins\",{\"wallet\":{\"shoppinglist\":{\"cheese\":{\"ingrediants\":[\"milk\",{\"preservative1\":\"wax\"}]}}}}]";
这是代码:
System.out.println(s);
System.out.println("=======decode=======");
Object obj=JSONValue.parse(s);
JSONArray array=(JSONArray)obj;
System.out.println("======the 2nd element of array======");
System.out.println(array.get(1));
System.out.println();
System.out.println("======the 1st element of array======");
System.out.println(array.get(0));
System.out.println();
JSONObject obj2=(JSONObject)array.get(1);
System.out.println("======field \"1\"==========");
System.out.println(obj2.get("wallet"));
JSONObject obj3=(JSONObject) obj2.get("shoppinglist");
System.out.println("======field \"2\"==========");
System.out.println(obj3); //This figure is returning null when I would like it to return the json object shopping list
当前输出:
[“硬币”,{“钱包”:{“购物清单”:{“奶酪”:{“成分”:[“牛奶”,{“ preservative1”:“蜡”}]}}}}}}]
=======解码=======
======数组的第二个元素======
{“ wallet”:{“ shoppinglist”:{“ cheese”:{“ ingrediants”:[“ milk”,{“ preservative1”:“ wax”}]}}}}
======数组的第一个元素======
硬币
======字段“ 1” ===========
{“购物清单”:{“乳酪”:{“成分”:[“牛奶”,{“ preservative1”:“蜡”}]}}}
======字段“ 2” ===========
空值
最佳答案
您将跳过嵌套的第一步。 obj2
具有属性“钱包”。 “购物清单”更深一层。
要获得预期的结果,请使用以下命令:
JSONObject wallet = (JSONObject) obj2.get("wallet");
JSONObject shoppinglist = (JSONObject) wallet.get("shoppinglist");
System.out.println(shoppinglist);