我想创建一个API,其格式如下所示。
keys = ['NAME1', 'NAME2', ...]
df = pd.DataFrame.from_dict({key: <whatever> for key in keys})
df = df.style.applymap(lambda val: val['color'])
df = df.format({key: lambda val: val['value'] for key in keyes})
为此,我创建了如下的RequestBody类。
{
"jsonObject": {
//some json object
},
"key": "SampleKey",
"jsonDataKey": "SampleDataKey"
}
}
但是不幸的是,我没有在类的json对象内获取任何数据。我做错了什么。请指导我如何访问该对象内的数据。
这是控制器方法代码。
public class ParentJsonInfo {
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
private String key;
public JsonObject getJsonData() {
return jsonData;
}
public void setJsonData(JsonObject jsonData) {
this.jsonData = jsonData;
}
private JsonObject jsonData;
public String getJsonDataKey() {
return jsonDataKey;
}
public void setJsonDataKey(String jsonDataKey) {
this.jsonDataKey = jsonDataKey;
}
private String jsonDataKey;
答案 0 :(得分:2)
您遇到的问题是,您试图对来自json的jsonObject
进行反序列化,但是您的字段称为jsonData
。
如@Mushtu所述,您需要重命名该字段。
以下是您的ParentJsonInfo,进行了一些调整:
jsonData
重命名为jsonObject
ParentJsonInfo:
public class ParentJsonInfo {
private String key;
private JsonObject jsonObject;
private String jsonDataKey;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public JsonObject getJsonObject() {
return jsonObject;
}
public void setJsonObject(JsonObject jsonObject) {
this.jsonObject = jsonObject;
}
public String getJsonDataKey() {
return jsonDataKey;
}
public void setJsonDataKey(String jsonDataKey) {
this.jsonDataKey = jsonDataKey;
}
}
JsonObject:
public class JsonObject {
private Map<String, Object> other = new HashMap<>();
@JsonAnyGetter
public Map<String, Object> getProperties() {
return other;
}
@JsonAnySetter
public void set(String name, String value) {
other.put(name, value);
}
}
答案 1 :(得分:0)
u可以这样修改
public Greeting greeting(@RequestBody String parentJsonInfo) {
// parse string to jsonobject
}