Reputation: 3
How to deserialise simple? My JSON look like:
{
"ok": 1,
"data": {
"A": [
{
"brand": "Aman",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/61.png"
}
],
"B": [
{
"brand": "Base-DS",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/24.png"
},
{
"brand": "BB",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/46.png"
},
{
"brand": "Banane",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/11.png"
}
],
"C": [
{
"brand": "cat",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/78.png"
},
{
"brand": "car",
"logo": "http://zxmall.bluedoor.com.cn/uploads/logo/129.png"
}
]
}
}
from [A-Z].
My code like below:
ReslutMod data = JsonUtil.jsonToMod(json, ReslutMod.class);
in JsonUtil:
public static <T> T jsonToMod(String jsonString, Class<T> clazz) {
if (StringUtils.isEmpty(jsonString)) {
return null;
}
try {
return JsonMapper
.getInstance()
.getJsonMapper().readValue(jsonString, clazz);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
JavaBean:
public class ReslutMod {
public int ok;
public BrandListMod data;
}
JavaBean2:
public class BrandListMod {
public ArrayList<CardBrandModel> A;
public ArrayList<CardBrandModel> B;
public ArrayList<CardBrandModel> C;
public ArrayList<CardBrandModel> D;
public ArrayList<CardBrandModel> E;
public ArrayList<CardBrandModel> F;
public ArrayList<CardBrandModel> G;
public ArrayList<CardBrandModel> H;
public ArrayList<CardBrandModel> I;
public ArrayList<CardBrandModel> J;
public ArrayList<CardBrandModel> K;
public ArrayList<CardBrandModel> L;
public ArrayList<CardBrandModel> M;
public ArrayList<CardBrandModel> N;
public ArrayList<CardBrandModel> O;
public ArrayList<CardBrandModel> P;
public ArrayList<CardBrandModel> Q;
public ArrayList<CardBrandModel> R;
public ArrayList<CardBrandModel> S;
public ArrayList<CardBrandModel> T;
public ArrayList<CardBrandModel> U;
public ArrayList<CardBrandModel> V;
public ArrayList<CardBrandModel> W;
public ArrayList<CardBrandModel> X;
public ArrayList<CardBrandModel> Y;
public ArrayList<CardBrandModel> Z;
}
I don't think is a good way. What can I do?
Upvotes: 0
Views: 119
Reputation: 8378
You can use a Map here.
E. g. :
class ReslutMod {
public int ok;
public Map<String, ArrayList<CardBrandModel>> data;
public int getOk() {
return ok;
}
public void setOk(int ok) {
this.ok = ok;
}
public Map<String, ArrayList<CardBrandModel>> getData() {
return data;
}
public void setData(Map<String, ArrayList<CardBrandModel>> data) {
this.data = data;
}
}
Where class CardBrandModel will be like this :
class CardBrandModel {
String brand;
String logo;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
}
Upvotes: 1