- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有嵌套对象,当我使用 jackson 将其序列化为 json 时,我想从中获取根名称。这就是我想要的结果(我向所有花卉爱好者道歉,但只是需要一个例子,这不能被解释为准确的数据):
{
"plants": "flowers",
"types": {
"rose" : {
"color": "red",
"height": 25,
}
}
}
我有 2 个类,一个包装类:
public class JsonWrapper {
public String plants = "flowers";
public Object types;
}
和“花”类:
@JsonRootName("rose")
public class rose{
public String color = "red";
public int height = 25;
}
现在我要做的是:
JsonWrapper wrapper = new JsonWrapper();
wrapper.types = new rose();
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
String jsonInString = mapper.writeValueAsString(wrapper);
我得到的结果是:
{
"JsonWrapper":{
"plants": "flowers",
"types": {
"color": "red",
"height": 25,
}
}
}
因此,我获得了未注释的包装器对象的根名称,但没有获得注释的子对象的根名称。有没有办法告诉 jackson 不要在没有根名称的情况下获取根名称并分析子对象?
最佳答案
没有 JsonRootName
的替代解决方案。
JsonWrapper.java
import java.util.HashMap;
import java.util.Map;
public class JsonWrapper {
public String plants = "flowers";
Map<String, Flower> types = new HashMap<>();
public Map<String, Flower> getTypes() {
return types;
}
public void setTypes(Map<String, Flower> types) {
this.types = types;
}
}
Flower.java
public class Flower {
public String color = "red";
public int height = 25;
}
Main.java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) throws JsonProcessingException {
JsonWrapper wrapper = new JsonWrapper();
wrapper.getTypes().put("rose", new Flower());
ObjectMapper mapper = new ObjectMapper();
String jsonInString = mapper.writeValueAsString(wrapper);
System.out.println(jsonInString);
}
}
关于java - 是否可以通过 Jackson 获取嵌套子级的 JsonRootName ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597316/
我有这个简单的 Java 实体,我需要将其设为 Json 输出,我可以通过网络服务实现该输出。 @Entity @JsonRootName(value = "flights") public clas
我有一个类似的 spring 项目和类,想生成以根名称为类型的 json。这是一个例子: public class Person { private String type; //worker
这是我的 FacilityDTO @JsonRootName("Facility") @XmlAccessorType(XmlAccessType.NONE) @XmlType(name = "Fac
我有嵌套对象,当我使用 jackson 将其序列化为 json 时,我想从中获取根名称。这就是我想要的结果(我向所有花卉爱好者道歉,但只是需要一个例子,这不能被解释为准确的数据): { "pla
我使用 spring-boot-starter-Hateoas 开发了一个 Rest 服务,并且我能够正确获取 json 输出,如下所示: "_embedded": { "bills":
其余服务响应 1243654INVOICE 或在 JSON 中: {"transaction":{"trxNumber":1243654,"type":"INVOICE"}} 我用的时候没有问题: m
我正在使用 Spring 3.2,我的 Spring MVC Controller 生成 JSON 数据(使用 jackson-databind-2.2.0)。我想使用 @JsonRootName (
我正在使用 spring-boot 和 spring-Hateoas 开发一个休息应用程序。我写的 DTO 是: 比尔.java @JsonIgnoreProperties(ignoreUnknown
我是一名优秀的程序员,十分优秀!