fastJson java后台转换json格式数据
来源:互联网 发布:无产阶级 知乎 编辑:程序博客网 时间:2024/06/05 08:26
什么是JSON?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
现在我们就来研究一下fastJson。
Fastjson是国内著名的电子商务互联网公司阿里巴巴内部开发的用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
1).速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
2).功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
3).无依赖,能够直接运行在Java SE 5.0以上版本
4).支持Android。
5).开源 (Apache 2.0)
这是fastJson的网址:http://code.alibabatech.com/wiki/display/FastJSON/Overview
其中包含了json数据处理的教程,jar下载地址,example样例等。
下面给出fastJson处理json数据格式的代码样例:
- package fastJson.test;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- public class FastJsonTest
- {
- /**
- * 序列化
- */
- public void toJsonString()
- {
- User user = new User("testFastJson001", "maks", 105);
- String text = JSON.toJSONString(user);
- System.out.println("toJsonString()方法:text=" + text);
- // 输出结果:text={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * 反序列化为json对象
- */
- public void parseJsonObject()
- {
- String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
- JSONObject json = JSON.parseObject(text);
- System.out.println("parseJsonObject()方法:json==" + json);
- // 输出结果:json=={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * 反序列化为javaBean对象
- */
- public void parseBeanObject()
- {
- String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
- User user = (User) JSON.parseObject(text, User.class);
- System.out.println("parseBeanObject()方法:user==" + user.getId() + "," + user.getName() + "," + user.getAge());
- // 输出结果:user==testFastJson001,maks,105
- }
- /**
- * 将javaBean转化为json对象
- */
- public void bean2Json()
- {
- User user = new User("testFastJson001", "maks", 105);
- JSONObject jsonObj = (JSONObject) JSON.toJSON(user);
- System.out.println("bean2Json()方法:jsonObj==" + jsonObj);
- // 输出结果:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * 全序列化 直接把java bean序列化为json文本之后,能够按照原来的类型反序列化回来。支持全序列化,需要打开SerializerFeature.WriteClassName特性
- */
- public void parseJSONAndBeanEachother()
- {
- User user = new User("testFastJson001", "maks", 105);
- SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
- String text = JSON.toJSONString(user, featureArr);
- System.out.println("parseJSONAndBeanEachother()方法:text==" + text);
- // 输出结果:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
- User userObj = (User) JSON.parse(text);
- System.out.println("parseJSONAndBeanEachother()方法:userObj==" + userObj.getId() + "," + userObj.getName() + "," + userObj.getAge());
- // 输出结果:userObj==testFastJson001,maks,105
- }
- public static void main(String[] args)
- {
- FastJsonTest test = new FastJsonTest();
- // 序列化
- test.toJsonString();
- // 反序列化为json对象
- test.parseJsonObject();
- // 反序列化为javaBean对象
- test.parseBeanObject();
- // 将javaBean转化为json对象
- test.bean2Json();
- // 全序列化
- test.parseJSONAndBeanEachother();
- }
- }
控制台输出结果:
- toJsonString()方法:text={"age":105,"id":"testFastJson001","name":"maks"}
- parseJsonObject()方法:json=={"age":105,"id":"testFastJson001","name":"maks"}
- parseBeanObject()方法:user==testFastJson001,maks,105
- bean2Json()方法:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
- parseJSONAndBeanEachother()方法:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
- parseJSONAndBeanEachother()方法:userObj==testFastJson001,maks,105
附:javaBean类User.java
- package fastJson.test;
- import java.io.Serializable;
- public class User implements Serializable {
- private static final long serialVersionUID = 1L;
- private String id;
- private String name;
- private int age;
- public User() {
- super();
- }
- public User(String id, String name, int age) {
- super();
- this.id = id;
- this.name = name;
- this.age = age;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- fastJson java后台转换json格式数据
- fastJson java后台转换json格式数据
- fastJson在java后台转换json格式数据
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(一)
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(一)
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(一)
- fastJson在java后台转换json格式数据探究(一)
- fastjson将java转换成json数据;指定日期格式,取消循环引用
- fastjson处理json数据转换传输的格式
- 后台传送时间格式数据json转换
- 后台JSON与JAVA数据的转换
- fastjson转换json格式数据为List<HashMap>转换异常问题
- json格式数据转换为java数组
- java 数组转换为json格式数据
- oracle-使用数据泵对不同用户和不同表空间的数据迁移
- Android开发RecycleView的适配器(adapter)无法更新集合中数据
- hdu 6213-Chinese Zodiac (map)
- spring boot中使用@Value注解
- Linux主机加固丨如何优雅的控制系统权限?
- fastJson java后台转换json格式数据
- SSH原理与运用(一):远程登录
- Java 赋值语句 类型转换
- kafka无法消费消息
- python爬虫实例项目大全
- 元注释
- 【转自论坛】Python字符串处理指令列表以及os,os.path模块的使用方法
- word 和excel打开时弹出安装配置窗口且相应图标不显示
- oracle基础知识,oracle sql练习