Json转换

Json转换 ​这是关于FastJson转换的一下情况列举在Java环境下验证的classUser{privateintid;privateStringname;publicintgetId(){returnid;}publicvoidsetId(intid){this.idid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}}importjava.util.ArrayList;importjava.util.List;classGroup{privateintid;privateStringname;privateListUserlistnewArrayListUser();publicintgetId(){returnid;}publicvoidsetId(intid){this.idid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicListUsergetList(){returnlist;}publicvoidsetList(ListUserlist){this.listlist;}}classWeibo{privateStringid;privateStringcity;publicWeibo(Stringid,Stringcity){this.idid;this.citycity;}publicWeibo(){}publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.idid;}publicStringgetCity(){returncity;}publicvoidsetCity(Stringcity){this.citycity;}}//下面是FastJson的简介常用的方法// Fastjson API入口类是com.alibaba.fastjson.JSON常用的序列化操作都可以在JSON类上的静态方法直接完成。// public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray// public static final JSONObject parseObject(String text) // 把JSON文本parse成JSONObject// public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean// public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray// public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合// public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本// public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本// public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray和上面方法的区别是返回值是不一样的/**这是关于FastJson的一个使用Demo在Java环境下验证的使用的时候可以参照这个例子进行回忆备注下面写的Json格式的数据前面的\意思是告诉编译器忽略掉它后面的。后面定义有三个类User、Group、Weiboauthor liuzhao*/importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;publicclassJsonDemo{publicstaticvoidmain(String[]args){json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象然后利用键值对的方式获取信息json2BeanM2();//将Json文本数据转换为JavaBean数据json2JSONArrayM3();//将json数据转化为JSONArray:json2JavaBeanM4();//将JSON文本转换为JavaBean的集合转换为单纯的1个ObjectparseObject(String text, ClassT clazz);bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本 用户数据的传递例如上传服务器bean2JSONObjectM6();//将JavaBean转换为JSON对象complexExampleM7();//一个相对复杂的例子complex2JsonM8();//一个复杂的Object到Json的DemocomplexMap2JsonM9();//将Map数据转换为JsonString的Demo这个对RedBoy服务端不就直接破了嘛}/** * 将Json文本数据信息转换为JsonObject对象然后利用键值对的方式获取信息 */privatestaticvoidjson2JsonObjectM1(){//一个JsonObject文本数据Strings{\name\:\liuzhao\};//将JsonObject数据转换为JsonJSONObjectobjectJSON.parseObject(s);//利用键值对的方式获取到值System.out.println(object.get(name));/** * 打印 * liuzhao */}/** * 将Json文本数据转换为JavaBean数据 * 需要注意的是这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样键中没有的在这个JavaBean中就显示为null */privatestaticvoidjson2BeanM2(){Strings{\id\:\0375\,\city\:\平顶山\};//一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象WeiboweiboJSON.parseObject(s,Weibo.class);//Weibo类在下边定义System.out.println(weibo.getId());System.out.println(weibo.getCity());//打印的结果 0375// 平顶山}/** * 将Map类型的数据转换为JsonString */privatestaticvoidcomplexMap2JsonM9(){GroupgroupnewGroup();group.setId(1);group.setName(group);Useruser1newUser();user1.setId(2);user1.setName(user1);Useruser2newUser();user2.setId(3);user2.setName(user2);group.getList().add(user1);group.getList().add(user2);MapInteger,ObjectmapnewHashMapInteger,Object();map.put(1,No.1);map.put(2,No.2);map.put(3,group.getList());StringjsonStringJSON.toJSONString(map);System.out.println(jsonString);/** * 输出{1:No.1,2:No.2,3:[{id:2,name:user1},{id:3,name:user2}]} */}/** * 由一个复杂的Object到Json的Demo */privatestaticvoidcomplex2JsonM8(){GroupgroupnewGroup();group.setId(1);group.setName(group);Useruser1newUser();user1.setId(2);user1.setName(user1);Useruser2newUser();user2.setId(3);user2.setName(user2);group.getList().add(user1);group.getList().add(user2);StringjsonStringJSON.toJSONString(group);System.out.println(jsonString);/** * 输出{id:1,list:[{id:2,name:user1},{id:3,name:user2}],name:group} */}/** * 一个相对复杂的例子 * JSON文本数据 * 首先是JSONObject转换为JSONArray * 然后将JSONArray转换为JavaBean */privatestaticvoidcomplexExampleM7(){Strings{js:[{id:\110000\,\city\:\北#001京市\},{id:\110000\,\city\:\北#002京市\},{id:\110000\,\city\:\北#002京市\},{id:\110000\,\city\:\北#002京市\},{id:\110000\,\city\:\#006北#005京市\},{id:\110000\,\city\:\北#002京市\},{id:\110000\,\city\:\北#002京市\},{id:\120000\,\city\:\天#009津市\}]};JSONObjectobjectJSON.parseObject(s);ObjectjsonArrayobject.get(js);System.out.println(jsonArray);ListWeibolistJSON.parseArray(jsonArray,Weibo.class);for(Weiboweibo:list){System.out.println(weibo.getCity());}}/** * 将JavaBean转换为JSON对象 */privatestaticvoidbean2JSONObjectM6(){WeiboweibonewWeibo(0373,洛阳);JSONObjectjson(JSONObject)JSON.toJSON(weibo);System.out.println(json.get(id));/** * 打印 * 0373 */}/** * 将JSON文本转换为JavaBean的集合 * 内部实现肯定是首先转换为JSONArray然后再转换为List集合 */privatestaticvoidjson2JavaBeanM4(){Strings[{\id\:\0375\,\city\:\平顶山\},{\id\:\0377\,\city\:\南阳\}];ListWeibolistJSON.parseArray(s,Weibo.class);for(Weiboweibo:list){System.out.println(weibo.getCity());}/** * 打印 * 平顶山 * 南阳 */}/** * 将json数据转化为JSONArray: * 注意获取到JSONArray之后我们这里只是获取到JSONArray而不是JavaBean的List集合 * 获取JSONArray中的数据转换为String类型需要在外边加; */privatestaticvoidjson2JSONArrayM3(){Strings[{\id\:\0375\,\city\:\平顶山\},{\id\:\0377\,\city\:\南阳\}];//将JSON文本转换为JSONArrayJSONArrayarrayJSON.parseArray(s);//这行必须写必须加上;不然会报出类型强转异常Stringstrarray.get(1);System.out.println(array.get(0));JSONObjectobjectJSON.parseObject(str);System.out.println(object.get(id));/** * {city:平顶山,id:0375} 0377 */}/** * 将JavaBean转换为Json格式的数据/Json文本 * 用户数据的传递例如上传服务器 */privatestaticvoidbean2JsonM5(){WeiboweibonewWeibo(123456,上海);StringstringJSON.toJSONString(weibo);System.out.println(string);/** * 打印 * {city:上海,id:123456} */}}​