2016-04-29 79 views
0

我有一個類Java的JSON選擇自定義屬性動態

public class Item { 
    private String atr1; 
    private String atr2; 
    private String atr3; 
    private String atr4; 
} 

然後,我把項目的列表中一個JSONObject

Item item1 = new Item(); 
Item item2 = new Item(); 
ArrayList<Item> items = new ArrayList<Item>(); 
items.add(item1); 
items.add(item2); 

JSONObject obj = new JSONObject(); 
obj.put("items", items); 

我需要得到像這樣

items:[ 
    { 
    "atr1":"somevalue", 
    "atr2":"somevalue", 
    "atr3":"somevalue", 
    "atr4":"somevalue" 
    }, 

    { 
    "atr1":"somevalue", 
    "atr2":"somevalue", 
    "atr4":"somevalue" 
    } 
] 

正如你所看到的,第一個項目有4個屬性,第二個項目有3個屬性。我該怎麼做?

回答

0

請指定您的問題。是atr3 null?

對於我的理解,嘗試使用@JsonInclude(JsonInclude.Include.NON_NULL)與滿足您的需求約束(我推薦使用傑克遜與JSON對象Java集成)

+0

不,這是不爲空,但我不希望包括在ATR3第一項。 – NoName2

+0

我認爲實現這一目標的唯一方法是創建'@ JsonCreator'方法,它將負責創建一個JSON(這裏,您可以根據需要排除一些字段),或者通過臨時設置e.x來操作您的值。爲空,並使用'@ JsonInclude' – VanDavv