JSON

阿里巴巴Json工具-Fastjson讲解

字号+ 作者:H5之家 来源:H5之家 2017-06-11 10:00 我要评论( )

阿里巴巴Json工具-Fastjson讲解,Fastjson是阿里巴巴公司开源的速度最快的Json和对象转换工具,一个Java语言编写的JSON处理器。1、遵循http://json.org标准,为其

正文

Fastjson是阿里巴巴公司开源的速度最快的Json和对象转换工具,一个Java语言编写的JSON处理器。

1、遵循标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。

2、主要的使用入口

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 publicstaticfinalObject parse(String text);// 把JSON文本parse为JSONObject或者JSONArray
publicstaticfinalJSONObject parseObject(String text);// 把JSON文本parse成JSONObject
publicstaticfinal<T> T parseObject(String text, Class<T> clazz);// 把JSON文本parse为JavaBean
publicstaticfinalJSONArray parseArray(String text);// 把JSON文本parse成JSONArray
publicstaticfinal<T> List<T> parseArray(String text, Class<T> clazz);//把JSON文本parse成JavaBean集合
publicstaticfinalString toJSONString(Object object);// 将JavaBean序列化为JSON文本
publicstaticfinalString toJSONString(Object object,booleanprettyFormat);// 将JavaBean序列化为带格式的JSON文本
publicstaticfinalObject toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。

3、有关类库的一些说明

SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String, Object>

JSON反序列化没有真正数组,本质类型都是List<Object>

4、fastjson还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能强大,不再讲解。

这是关于FastJson的一个使用Demo,在Java环境下验证的

returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } } [java]view plain returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicList<User>getList(){ returnlist; } publicvoidsetList(List<User>list){ this.list=list; } } [java]view plaincopy

在CODE上查看代码片

派生到我的代码片


} publicWeibo(){ } publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringgetCity(){ returncity; } publicvoidsetCity(Stringcity){ this.city=city; } } [java]view plain publicstaticvoidmain(String[]args){ json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 json2BeanM2();//将Json文本数据转换为JavaBean数据! json2JSONArrayM3();//将json数据转化为JSONArray: json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(Stringtext,Class<T>clazz); bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本用户数据的传递:例如上传服务器 bean2JSONObjectM6();//将JavaBean转换为JSON对象 complexExampleM7();//一个相对复杂的例子: complex2JsonM8();//一个复杂的Object到Json的Demo complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛! } //一个JsonObject文本数据 Strings="{\"name\":\"liuzhao\"}"; //将JsonObject数据转换为Json JSONObjectobject=JSON.parseObject(s); //利用键值对的方式获取到值 System.out.println(object.get(} Strings="{\"id\":\"0375\",\"city\":\"平顶山\"}"; //一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象! Weiboweibo=JSON.parseObject(s,Weibo.class);//Weibo类在下边定义 System.out.println(weibo.getId()); System.out.println(weibo.getCity()); //打印的结果0375 //平顶山 } Groupgroup=newGroup(); group.setId(1); group.setName("group"); Useruser1=newUser(); user1.setId(2); user1.setName("user1"); Useruser2=newUser(); 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"); map.put(3,group.getList()); StringjsonString=JSON.toJSONString(map); System.out.println(jsonString); } Groupgroup=newGroup(); group.setId(1); group.setName("group"); Useruser1=newUser(); user1.setId(2); user1.setName("user1"); Useruser2=newUser(); user2.setId(3); user2.setName("user2"); group.getList().add(user1); group.getList().add(user2); StringjsonString=JSON.toJSONString(group); System.out.println(jsonString); } 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津市\"}]}"; JSONObjectobject=JSON.parseObject(s); ObjectjsonArray=object.get("js"); System.out.println(jsonArray); List<Weibo>list=JSON.parseArray(jsonArray+"",Weibo.class); for(Weiboweibo:list){ System.out.println(weibo.getCity()); } } Weiboweibo=newWeibo("0373","洛阳"); JSONObjectjson=(JSONObject)JSON.toJSON(weibo); System.out.println(json.get(} Strings="[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]"; List<Weibo>list=JSON.parseArray(s,Weibo.class); for(Weiboweibo:list){ System.out.println(weibo.getCity()); } } Strings="[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]"; //将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(} Weiboweibo=newWeibo("123456","上海"); Stringstring=JSON.toJSONString(weibo); System.out.println(string); } }

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JSON字符串反序列化成对象

    JSON字符串反序列化成对象

    2017-06-11 10:03

  • 小技巧之JSON.stringify()/parse()

    小技巧之JSON.stringify()/parse()

    2017-06-11 09:07

  • json,第2页

    json,第2页

    2017-06-09 13:01

  • json result

    json result

    2017-06-08 10:00

网友点评
v