如何以特定顺序序列化java对象



我需要在序列化到前端时以指定的顺序设置此DTO对象。我试过@JsonPropertyOrder:

@JsonPropertyOrder({"Body and Frame","Exterior Details","Interior Details",})
public class CertificateTabbings implements Serializable{
@SerializedName("Body and Frame")
private UsedcarInspectionCommonDto usedCarBodyAndFrame;
@SerializedName("Exterior Details")
private UsedcarInspectionCommonDto exteriorDetails;
@SerializedName("Interior Details")
private UsedcarInspectionCommonDto interiorDetails;
//getters //setters}

之后我将这些对象的值设置为:

UsedCarInspectionReport inspectionReport = new UsedCarInspectionReport();
certificateTabbing.setUsedCarBodyAndFrame(certificationDetails.getUsedCarBodyAndFrame());
certificateTabbing.setExteriorDetails(certificationDetails.getExteriorDetails());
certificateTabbing.setInteriorDetails(certificationDetails.getInteriorDetails());
inspectionReport.setCertificateTabbings(certificateTabbing);

使用@JsonPropertyOrder对我不起作用。有什么建议我应该如何得到指定的顺序在输出json.

@JsonPropertyOrder是Jackson库的一部分,而@SerializedName是GSON库的一部分。GSON不支持json顺序,所以为了使它工作,更改

@SerializedName

@JsonProperty

注意:任何合适的前端框架都应该不按顺序处理json,因为http://json.org说

对象是名称/值对的无序集合。

所以排序json对象可能是不必要的。

最新更新