Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中从Json对象提取元素_Java_Json - Fatal编程技术网

如何在java中从Json对象提取元素

如何在java中从Json对象提取元素,java,json,Java,Json,这是我调用API时的json对象 工作 JSON的主体是这样的 bodyofJson { "ID": "sup-9749-0e710000fd04", "VERSION": 1, "ACTION_TYPE": "NEW_CASE", "EVENT_TYPE": "WORLDCHECK" } 我需要获取json的主体和键作为ID,它位于主体json中。 我能够获取Body,但无法从Body json获取ID 这就是我正在做的 JSONObject job = ne

这是我调用API时的json对象

工作

JSON的主体是这样的

bodyofJson

{
    "ID": "sup-9749-0e710000fd04",
    "VERSION": 1,
    "ACTION_TYPE": "NEW_CASE",
    "EVENT_TYPE": "WORLDCHECK"
}
我需要获取json的主体和键作为ID,它位于主体json中。 我能够获取Body,但无法从Body json获取ID

这就是我正在做的

JSONObject job = new JSONObject(json);
System.out.println("****job*******"+job);
String bodyofJson = job.getString("body");
System.out.println("****bodyofJson*******"+bodyofJson);
ID的位置也可以改变,这就是为什么我没有得到索引的基础上


请建议

主体
键进一步包含json。因此,我们需要将其解析为
JSONObject
,并获得
ID
的值

代码如下:

JSONObject job = new JSONObject(json);
System.out.println("****job*******"+job);
String bodyofJson = job.getString("body");
System.out.println("****bodyofJson*******"+bodyofJson);
// Parse bodyofJson as JSONObject
JSONObject bodyJsonObj = new JSONObject(bodyofJson);
System.out.println(bodyJsonObj.get("ID"));

我不确定我是否理解正确,但是如果
body
本身包含JSON,你就不能像对待
JSON
那样解析它,然后得到
ID
字段吗?@FedericoklezCulloca我试过了,但它给了我错误请你的问题包括你尝试的代码和它给出的错误。我在你给出的工作示例中看到,
body
有值
“{\“ID\”:\“sup-9749-0e710000fd04\”、“VERSION\”:1、“\AUDIT\u EVENT\u TO\u DATE\u TP\”:null}”
,您无法将其解析为json,因为它无效(
null
不是有效值。
“null”
,请注意引号,是)。
JSONObject job = new JSONObject(json);
System.out.println("****job*******"+job);
String bodyofJson = job.getString("body");
System.out.println("****bodyofJson*******"+bodyofJson);
// Parse bodyofJson as JSONObject
JSONObject bodyJsonObj = new JSONObject(bodyofJson);
System.out.println(bodyJsonObj.get("ID"));