2016-03-31 13 views
0

Ich verwende Jackson lib, um Json Dateien zu generieren.JACKSON, JSON: Liste Titel

nach der Bean-Klasse zu schaffen,

Klasse ActiveOrderResponse

public class ActiveOrderResponse implements IWsResponse { 

    @JsonProperty("error") 
    public String errorMsg; 

    @JsonProperty("errorDsc") 
    public String errorDesc = ""; 

    @JsonProperty("Orders") 
    public ArrayList<ActiveOrder> orders = new ArrayList<ActiveOrder>(); 
} 

Klasse ActiveOrder

public class ActiveOrder { 

    @JsonProperty("OrderNo") 
    private String orderNo; 

    @JsonProperty("Status") 
    private String status; 

    @JsonProperty("Description") 
    private String description = ""; 
} 

ich habe diese Json in dem Ergebnis:

{"error":"000", 
"errorDsc":"", 
"Orders":[ 
{"OrderNo":"Order_1", 
"Status":"NOT_EXISTS", 
"Description":""}, 
{"OrderNo":"Order_2", 
"Status":"COMPLETED", 
"Description":""}, 
{"OrderNo":"Order_3", 
"Status":"CREATED", 
"Description":""}, 
{"OrderNo":"Order_4", 
"Status":"NOT_IMPORTED", 
"Description":""}] 
} 

Aber ich ging so die Json (ein Titel „Order“ am Anfang jeder Bestellliste):

{"error":"000", 
"errorDsc":"", 
"Orders":[ 
"Order" : {"OrderNo":"Order_1", 
"Status":"NOT_EXISTS", 
"Description":""}, 
"Order" : {"OrderNo":"Order_2", 
"Status":"COMPLETED", 
"Description":""}, 
"Order" : {"OrderNo":"Order_3", 
"Status":"CREATED", 
"Description":""}, 
"Order" : {"OrderNo":"Order_4", 
"Status":"NOT_IMPORTED", 
"Description":""}] 
} 
+0

Können Sie bitte die Klasse 'ActiveOrder' zeigen? –

+2

Hier ist ein Beispiel ähnlich Ihrer Frage: http://stackoverflow.com/questions/2435527/use-class-name-as-root-key-for-json-jackson-serialization – Wakachopo

+0

danke @Wakachopo ich finde die Lösung in deine Frage. –

Antwort

0

Meine Umgebung, wenn das Problem mich nicht gelöst ist, zeigen Sie den Code mit ObjectMapper:

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.6</version> 
</dependency> 


public static void main(String[] args) throws IOException { 
    ActiveOrderResponse activeOrderResponse = new ActiveOrderResponse(); 
    activeOrderResponse.orders = new ArrayList<ActiveOrder>(); 
    activeOrderResponse.orders.add(new ActiveOrder()); 
    ObjectMapper om = new ObjectMapper(); 
    om.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); 
    om.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, true); 
    String json = om.writeValueAsString(activeOrderResponse); 
    System.out.println(json); 
} 


{ 
    "error" : null, 
     "errorDsc" : "", 
     "Orders" : [ { 
    "OrderNo" : null, 
      "Status" : null, 
      "Description" : "" 
} ] 
} 
Verwandte Themen