嗨,我正在尝试使用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);

08-04 21:25