Порядок объектов JSON с использованием объекта Джексона ObjectMapper



Я использую ObjectMapper чтобы сделать мое отображение java-json.



ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ow.writeValue(new File( fileName +".json"), jsonObj);


Это мой класс java:



public class Relation {

private String id;
private String source;
private String target;
private String label;
private List<RelAttribute> attributes;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getSource() {
return source;
}

public void setSource(String source) {
this.source = source;
}

public String getTarget() {
return target;
}

public void setTarget(String target) {
this.target = target;
}

public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}

public void setAttributes(List<RelAttribute> attributes) {
this.attributes = attributes;
}

public List<RelAttribute> getAttributes() {
return attributes;
}

}


вот что я получил:



{
"id" : "-75da69d3-79c8-4000-a3d8-b10350a57a7e",
"attributes" : [ {
"attrName" : "ID",
"attrValue" : ""
}, {
"attrName" : "Description",
"attrValue" : "Primary Actor"
}, {
"attrName" : "Status",
"attrValue" : ""
} ],
"label" : "new Label",
"target" : "-46b238ac-b8b3-4230-b32c-be9707f8b691",
"source" : "-daa34638-061a-45e0-9f2e-35afd6c271e0"
}


Итак, мой вопрос сейчас, как я могу получить этот вывод json:



{
"id" : "-75da69d3-79c8-4000-a3d8-b10350a57a7e",
"label" : "new Label",
"target" : "-46b238ac-b8b3-4230-b32c-be9707f8b691",
"source" : "-daa34638-061a-45e0-9f2e-35afd6c271e0",
"attributes" : [ {
"attrName" : "ID",
"attrValue" : ""
}, {
"attrName" : "Description",
"attrValue" : "Primary Actor"
}, {
"attrName" : "Status",
"attrValue" : ""
} ]

}


Я хочу, чтобы он был в том же порядке, что и в моем объявлении java. Есть ли способ указать его ? Может быть, с аннотациями или что-то в этом роде ?

559   2  

2 ответов:

@JsonPropertyOrder({ "id", "label", "target", "source", "attributes" })
public class Relation { ... }

можно использовать @XmlAccessorType(XmlAccessType.FIELD)

@XmlType(name = "response", propOrder = { "prop1", "prop2",
        "prop3", "prop4", "prop5", "prop6" }).

@JsonPropertyOrder требуется добавить новую банку.

Comments

    Ничего не найдено.