我想从客户端向其他服务发送类似的内容
jsonObj = { "info" : { "field1" : "val1".. ..... "fieldN" : "valN".. } }
我不知道如何使用
Jersey and Jackson in Java
来使用休息服务处理此问题
我不想使用具有N字段的Jackson属性创建新的信息类,因为它们将始终更改。我只想抓住jsonObject中的jsonObject,并将其作为JsonObject进行操作。
有什么想法吗?
答案 0 :(得分:7)
假设您有一个正在读取结果的根对象,您可以在jsonObj中将docInfo定义为Map<String, Object>
。这可能可以工作,但我现在不能试一试。
如果您没有根对象,可以使用Map<String, Object>
作为根对象并从那里进行播放。该Map可以包含嵌套json对象的其他映射。
答案 1 :(得分:3)
是的,使用带有嵌入式地图的包装器对象,如@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”:{ “字段1”: “VALUE1”, “FIELD2”: “VALUE2”, “字段3”: “值3”, “字段4”: “VALUE4”}}