这是关于FastJson的一个使用Demo,在Java环境下验证的
- classUser{
- privateintid;
- privateStringname;
- publicintgetId(){
- returnid;
- }
- voidsetId(intid){
- this.id=id;
- }
- publicStringgetName(){
- returnname;
- voidsetName(Stringname){
- this.name=name;
- }
importjava.util.ArrayList;
- importjava.util.List;
-
- classGroup{
- intid;
- privateStringname;
- privateList<User>list=newArrayList<User>();
- publicList<User>getList(){
- returnlist;
- voidsetList(List<User>list){
- this.list=list;
- copy
classWeibo{
- privateStringid;
- privateStringcity;
-
- publicWeibo(Stringid,Stringcity){
- this.city=city;
- publicWeibo(){
- publicStringgetId(){
- returnid;
- voidsetId(Stringid){
- publicStringgetCity(){
- returncity;
- voidsetCity(Stringcity){
- this.city=city;
- copy
importjava.util.HashMap;
- importjava.util.Map;
- importcom.alibaba.fastjson.JSON;
- importcom.alibaba.fastjson.JSONArray;
- importcom.alibaba.fastjson.JSONObject;
-
-
- //publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
- //publicstaticfinalJSONObjectparSEObject(Stringtext);//把JSON文本parse成JSONObject
- //publicstaticfinal<T>TparSEObject(Stringtext,Class<T>clazz);//把JSON文本parse为JavaBean
- //publicstaticfinalJSONArrayparseArray(Stringtext);//把JSON文本parse成JSONArray
- //publicstaticfinal<T>List<T>parseArray(Stringtext,Class<T>clazz);//把JSON文本parse成JavaBean集合
- //publicstaticfinalStringtoJSONString(Objectobject);//将JavaBean序列化为JSON文本
- //publicstaticfinalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本
- //publicstaticfinalObjecttoJSON(ObjectjavaObject);将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
- /**
- *这是关于FastJson的一个使用Demo,在Java环境下验证的;
- *使用的时候可以参照这个例子进行回忆!
- *备注:下面写的Json格式的数据"前面的,意思是告诉编译器忽略掉它后面的"。
- *后面定义有三个类:User、Group、Weibo
- *@authorliuzhao
- */
- classJsonDemo{
- staticvoidmain(String[]args){
- json2JsonObjectM1();
- json2BeanM2();
- json2JSONArrayM3();
- json2JavaBeanM4();
- bean2JsonM5();
- bean2JSONObjectM6();
- complexExampleM7();
- complex2JsonM8();
- complexMap2JsonM9();
- *将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
- voidjson2JsonObjectM1(){
- //一个JsonObject文本数据
- Strings="{"name":"liuzhao"}";
- //将JsonObject数据转换为Json
- JSONObjectobject=JSON.parSEObject(s);
- //利用键值对的方式获取到值
- System.out.println(object.get("name"));
- *打印:
- *liuzhao
- */
- *将Json文本数据转换为JavaBean数据!
- *需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
- voidjson2BeanM2(){
- Strings="{"id":"0375","city":"平顶山"}";
- //一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
- Weiboweibo=JSON.parSEObject(s,Weibo.class);
- System.out.println(weibo.getId());
- System.out.println(weibo.getCity());
- //打印的结果0375
- //平顶山
- /**
- *将Map类型的数据转换为JsonString
- voidcomplexMap2JsonM9(){
- Groupgroup=newGroup();
- group.setId(1);
- group.setName("group");
- Useruser1=newUser();
- user1.setId(2);
- user1.setName("user1");
- Useruser2= user2.setId(3);
- user2.setName("user2");
- group.getList().add(user1);
- group.getList().add(user2);
- Map<Integer,Object>map=newHashMap<Integer,Object>();
- map.put(1,"No.1");
- map.put(2,"No.2");
- 3,group.getList());
- StringjsonString=JSON.toJSONString(map);
- System.out.println(jsonString);
- *输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
- *由一个复杂的Object到Json的Demo
- voidcomplex2JsonM8(){
- StringjsonString=JSON.toJSONString(group);
- *输出:{"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"}
- *一个相对复杂的例子:
- *JSON文本数据:
- *首先是JSONObject,转换为JSONArray;
- *然后将JSONArray转换为JavaBean
- voidcomplexExampleM7(){
- Strings="{js:[{id:"110000","city":"北#001京市"},{id:"110000","city":"北#002京市"}"
- +","city":"北#002京市"},"
- +"{id:"110000","city":"#006北#005京市"},"
- +"{id:"110000",{id:"120000","city":"天#009津市"}]}";
- JSONObjectobject=JSON.parSEObject(s);
- ObjectjsonArray=object.get("js");
- System.out.println(jsonArray);
- List<Weibo>list=JSON.parseArray(jsonArray+"",Weibo.class);
- for(Weiboweibo:list){
- *将JavaBean转换为JSON对象
- voidbean2JSONObjectM6(){
- Weiboweibo=newWeibo("0373","洛阳");
- JSONObjectjson=(JSONObject)JSON.toJSON(weibo);
- System.out.println(json.get("id"));
- *0373
- *将JSON文本转换为JavaBean的集合;
- *内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
- voidjson2JavaBeanM4(){
- Strings="[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
- List<Weibo>list=JSON.parseArray(s,153); background-color:inherit; font-weight:bold">class);
- for(Weiboweibo:list){
- System.out.println(weibo.getCity());
- *平顶山
- *南阳
- *将json数据转化为JSONArray:
- *注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
- *获取JSONArray中的数据转换为String类型需要在外边加"";
- voidjson2JSONArrayM3(){
- //将JSON文本转换为JSONArray
- JSONArrayarray=JSON.parseArray(s);
- //这行必须写:必须加上+"";不然会报出类型强转异常!
- Stringstr=array.get(1)+"";
- System.out.println(array.get(0));
- JSONObjectobject=JSON.parSEObject(str);
- System.out.println(object.get("id"));
- *{"city":"平顶山","id":"0375"}
- 0377
- *将JavaBean转换为Json格式的数据/Json文本
- *用户数据的传递:例如上传服务器
- voidbean2JsonM5(){
- newWeibo("123456","上海");
- Stringstring=JSON.toJSONString(weibo);
- System.out.println(string);
- *{"city":"上海","id":"123456"}
- }
转自:
http://www.oschina.net/code/snippet_228315_35122 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|