如何仅使用json-simple从嵌套对象中的键获取值

时间:2019-06-03 19:02:32

标签: java json object json-simple

我想从所有嵌套对象中仅获取特定值。在应用程序中,我只需要另一个对象消息中的味精3。

我已经使用JSONObject尝试过,但是不适用于嵌套对象。但是,它只使用一个对象即表示根对象。

INPUT - {"name":"lola","messages":{"msg 1":"msg 2","msg 3":"msg 4"},"age":22}

        String s = sc.nextLine();
        JSONParser parser = new JSONParser(); 
        JSONObject json = (JSONObject) parser.parse(s);
        System.out.println(json);
        Object name = json.get("messages");
        System.out.println(name);

        JSONObject messageObject = (JSONObject) json.get("messages");
        System.out.println(employeeObject);
        //Get employee first name
        String msg= (String) messageObject.get("msg3");   
        System.out.println(msg);

输出:

{"msg 3":"msg 4","msg 1":"msg 2"}
{"msg 3":"msg 4","msg 1":"msg 2"}
null

最后一个嵌套对象未以任何方式获取。另一件事是更改了字符串作为JSONObject的常规显示。就像msg3早于msg1一样。 代替null-msg4应该存在。

谢谢。

1 个答案:

答案 0 :(得分:0)

您缺少“ msg”和“ 3”之间的空格。顺便说一句,您可以这样轻松完成。

String s = sc.nextLine();
JSONParser parser = new JSONParser(); 
JSONObject json = (JSONObject) parser.parse(s);
System.out.println(json);
System.out.println(json.get("message").get("msg 3"));