这是我调用API时的json对象。
工作
{
"path": "/",
"isBase64Encoded": false,
"requestContext": {
"resourceId": "20gm43r4fa",
"resourcePath": "/",
"httpMethod": "POST",
"extendedRequestId": "GO6ktGL_IAMFaLA=",
"requestTime": "13/Jan/2020:09:53:34 +0000",
"path": "/",
"accountId": "***",
"protocol": "HTTP/1.1",
"stage": "test-invoke-stage",
"domainPrefix": "testPrefix",
"requestTimeEpoch": 1578909214062,
"requestId": "dgdfg-ad12-431a-b1b9-***",
"identity": {
"accountId": "***",
"caller": "345345:a.b@***.com",
"apiKey": "test-invoke-api-key",
"sourceIp": "test-invoke-source-ip",
"accessKey": "&&YY&&YH",
"userArn": "arn:aws:sts::***:assumed-role/****-PowerUser/ab.dx@****.com",
"apiKeyId": "test-invoke-api-key-id",
"userAgent": "aws-internal/3 aws-sdk-java/1.11.690 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.232-b09 java/1.8.0_232 vendor/Oracle_Corporation",
"user": "345345345:Sa.b@***.com"
},
"domainName": "testPrefix.testDomainName",
"apiId": "dfgdf"
},
"resource": "/",
"httpMethod": "POST",
"body": "{\"ID\":\"sup-9749-0e710000fd04\",\"VERSION\":1,\"AUDIT_EVENT_TO_DATE_TP\":null}"
}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的位置也可以改变,所以这就是为什么我不是基于索引的原因
请给出建议
发布于 2020-01-13 18:21:39
body密钥还包含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"));https://stackoverflow.com/questions/59714399
复制相似问题