{
"System": "PROD",
"Procedure": "Test_Procedure",
"payload": {
"IV_SITEID": "JG",
"IV_DATE": "12.03.2019",
"IV_STRUCT": {
"FIELD1": "VALUE1",
"FIELD2": "VALUE2",
"FIELD3": "VALUE3"
},
"IV_TABLE": [
{
"TAB1": "VAL1",
"TAB2": "VAL2",
"TAB3": "VAL3"
},
{
"TAB1": "VAL11",
"TAB2": "VAL12",
"TAB3": "VAL13"
},
{
"TAB1": "VAL21",
"TAB2": "VAL22",
"TAB3": "VAL23"
}
]
}
}
我将以上述 json 格式从用户那里获得可能的输入。我在 java 的 LinkedHashMap 中使用它
我想检查上面输入的“payload”标签值是简单字符串、单个 json 数组还是多个数组值
public ResponseEntity<?> callRFC(@RequestBody Map<String, Object> request, @RequestHeader HttpHeaders headers) {
String sapSystem = (String) request.get("sapSystem");
String rfc = (String) request.get("rfc");
LinkedHashMap payload = (LinkedHashMap) request.get("payload");
for (int i=0; i<payload.values().toArray().length; i++)
{
System.out.println("Values : " + payload.values().toArray()[i]);
}
return ResponseEntity.ok().build();
}
输出:
Values : JG
Values : 12.05.2019
Values : {FIELD1=VALUE1, FIELD2=VALUE2, FIELD3=VALUE3}
Values : [{TAB1=VAL1, TAB2=VAL2, TAB3=VAL3}, {TAB1=VAL11, TAB2=VAL12, TAB3=VAL13}, {TAB1=VAL21, TAB2=VAL22, TAB3=VAL23}]
我可以从上面的代码打印值,但我无法检查 payload.values().toArray()[i] 的值是简单字符串、单个 json 数组还是多个数组值