【发布时间】:2015-05-15 05:38:24
【问题描述】:
如何简单的反序列化?我的 JSON 看起来像:
{
"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"
}
]
}
}
来自 [A-Z]。
我的代码如下:
ReslutMod data = JsonUtil.jsonToMod(json, ReslutMod.class);
在 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;
}
我认为这不是一个好方法。我能做什么?
【问题讨论】:
-
你能把你的问题说得更清楚一点吗?你已经有一票赞成关闭,如果达到 5 则你的帖子将被关闭。
-
如果我没记错的话,在这里你想通过减小 bean 大小来使你的实现更干净。
-
如果你想优化内存,你应该使用Jackson的Stream Parser API,只创建一个arraylist,其中包含从A到Z的所有数据。
-
是的,我只想创建一个数组列表,其中包含从 A 到 Z 的所有数据。