--
JSON類型數(shù)據(jù)用于前后臺傳參以及redis數(shù)據(jù)存儲(chǔ)等方面纸泄,注解@responseBody和@requestBody已解決了前后臺JSON數(shù)據(jù)轉(zhuǎn)對象的操作,但是后臺也有些轉(zhuǎn)bean腰素、list聘裁、map等類型數(shù)據(jù)的需求,于是一起在此作總結(jié):
--
Json的三種數(shù)據(jù)格式
對象格式
格式:{name:value,name:value}
案例:var pp={"id":10,"name":"lisi",.......}
注意:在json數(shù)據(jù)格式中,name類型是字符串弓千,value類型是Object衡便。
數(shù)組格式
格式:[元素,元素洋访,元素]
案例:var pp=[{"name":"Michael","age":24}镣陕,{"name":"Tom","age":25}]
注意:取值方式,通過pp[0].name取值姻政,值為Michael呆抑。
組合格式(嵌套)
案例:{"name":"Michael", "birthday":{"month":8,"day":26}}
Json常用的兩種方法
JSON.stringify():將JSON對象轉(zhuǎn)為JSON字符串(序列化)
JSON.parse():將JSON字符串轉(zhuǎn)為JSON對象(反序列化,javaBean需要實(shí)現(xiàn)Serializable接口)
Json轉(zhuǎn)bean汁展、list鹊碍、map
JSON轉(zhuǎn)bean
String ssd = joData.getString("shopSelldetail");
JSONObject object3 = JSONObject.fromObject(ssd);
ShopSelldetail shopSelldetail = (ShopSelldetail)JSONObject.toBean(object3,ShopSelldetail.class);
JSON轉(zhuǎn)list
List<ShopRefundrecord> refundList = new ArrayList<ShopRefundrecord>();
String refundLists = joData.getString("refundList");
JSONArray jsonArray1 = JSONArray.fromObject(refundLists);
for(int i = 0; i < jsonArray1.size(); i++){
JSONObject jsonObject2 = jsonArray1.getJSONObject(i);
ShopRefundrecord srr = (ShopRefundrecord) JSONObject.toBean(jsonObject2, ShopRefundrecord.class);
refundList.add(srr);
}
JSON轉(zhuǎn)map
Map<Integer, Integer> refoundRecordMap = new HashMap<Integer, Integer>();
String refoundRecordMaps = joData.getString("refoundRecordMap");
JSONObject jsonObject = JSONObject.fromObject(refoundRecordMaps);
Iterator keys = jsonObject.keys();
while(keys.hasNext()){
Integer key = Integer.parseInt(keys.next().toString());
Integer value = Integer.parseInt(jsonObject.get(""+key).toString());
refoundRecordMap.put(key, value);
}