我想从客户端发送这样的东西到休息服务
jsonObj = { “信息”:{ “field1”:“val1”.. ...... “字段N”:“valN”.. } }
而且我不确定如何使用休息服务来处理这个问题
Java 中的泽西岛和杰克逊
我不想使用带有 N 字段的 Jackson 属性来创建一个新的信息类,因为它们总是会改变。我只想获取 jsonObject 内部的 jsonObject 并将其作为 JsonObject 进行操作。
有什么想法吗 ?
假设您有一个正在读取结果的根对象,您可以Map<String, Object>
在 jsonObj 中将 docInfo 定义为 a。这可能会奏效,但我目前无法尝试。
如果您没有根对象,您可以使用 aMap<String, Object>
作为您的根对象并从那里开始使用它。该 Map 可以包含嵌套 json 对象的其他映射。
是的,正如@digitialjoel 建议的那样,使用带有嵌入式地图的包装器对象。这是一个具体的例子:
class DocInfo {
private Map<String, Object> docInfo;
public DocInfo() {
super();
}
public DocInfo(final Map<String, Object> docInfo) {
super();
this.docInfo = docInfo;
}
// Getters, setters
}
final Map<String, Object> data = new LinkedHashMap<String, Object>(4);
data.put("field1", "value1");
data.put("field2", "value2");
data.put("field3", "value3");
data.put("field4", "value4");
final DocInfo info = new DocInfo(data);
final ObjectMapper mapper = new ObjectMapper();
final String json = mapper.writeValueAsString(info);
System.out.println(json);
输出:
{"docInfo":{"field1":"value1","field2":"value2","field3":"value3","field4":"value4"}}