我尝试使用以下示例处理请求:
"type" : "NEWS",
"content" : {
"title" : "Test Message",
"message" : "This is a message",
"buttonCaption" : "Click me"
}
或者也许:
"type" : "NEWS",
"content" : {
"title" : "Test Message",
"message" : "This is a message",
"buttonCaption" : "Click me",
"anotherField" : "values"
}
有时可能:
"type" : "NEWS",
"content" : {
"name" : "Test Message",
"anotherProperties" : "This is a message",
"ohMyGodAnotherFields" : "Click me"
}
所以我无法创建特定的对象。 如何在Spring控制器中处理它?</ p>
答案 0 :(得分:0)
您可以在资源类中使用JsonNode
,如:
public class Foo {
private String type;
private JsonNode content;
// ...
}
并在控制器中接受@RequestBody
:
@PostMapping
public ResponseEntity<Foo> foo(@RequestBody Foo foo){
// do something with your foo...
}
您可以阅读更多aboot JsonNode here.
答案 1 :(得分:0)
您必须使用java.util.Iterator获取密钥。
JSONObject jsonObj = new JSONObject(JSONString);
Iterator keys = jsonObj.keys();
while (keys.hasNext()) {
String keyStr = keys.next().toString();
String value = jsonObj.getStrin(keyStr);
}
或者你可以试试这个:
JSONObject jsonObj = new JSONObject(JSONString);
if (jsonObj.has("key")) {
String value = jsonObj.getString("key");
}