【问题标题】:How to map json from java object dynamically?如何从java对象动态映射json?
【发布时间】:2020-06-18 04:37:47
【问题描述】:

我们如何将java对象映射到json? Java 对象将具有映射和其他一些字符串属性。我想要的是,当我们将 java 对象转换为 json 时,映射键应该是根键而不是嵌套键。

示例 Java 对象:

class Demo {
    String name;
    String designation;
    Map<String,Object> attribute;
}

现在,如果 Map 具有如下值:

Map<String,Object> attribute = new HashMap<>();
attribute.put("score",190);
attribute.put("status","allowed");

输出应如下所示:

{
  "name":"jack",
  "designation":"Tester",
  "score":190,
  "status":"allowed"
}

【问题讨论】:

标签: java json serialization java-8 jackson


【解决方案1】:

如果我猜对了,请使用 Jackson。示例:

Java 对象到 JSON

ObjectMapper mapper = new ObjectMapper();

// Java object to JSON file
mapper.writeValue(new File("c:\\test\\staff.json"), new Staff());

// Java object to JSON string
String jsonString = mapper.writeValueAsString(object);

JSON 到 Java 对象

ObjectMapper mapper = new ObjectMapper();

//JSON file to Java object
Staff obj = mapper.readValue(new File("c:\\test\\staff.json"), Staff.class);

//JSON URL to Java object
Staff obj = mapper.readValue(new URL("http://some-domains/api/name.json"), Staff.class);

//JSON string to Java Object
Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);

回购:https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind

杰克逊 JSON 教程:https://www.baeldung.com/jackson

另一个例子:https://mkyong.com/java/jackson-2-convert-java-object-to-from-json/

【讨论】:

  • 我们可以使用杰克逊,但我想要的是在从地图转换的 json 中,键应该作为根键而不是对象内...
  • @NishantVarshney 然后创建另一个反序列化,或者添加一个方法来接收内部对象,并将其属性放在父级中。创建一个占位符模型,并根据需要输出对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 2013-04-16
  • 2014-11-02
  • 2018-11-02
  • 2013-04-17
相关资源
最近更新 更多