JSON相关知识点
来源:互联网 发布:快走丝编程教学视频 编辑:程序博客网 时间:2024/06/10 00:00
JSON是工作中经常会遇到的一种数据结构,下面来讲讲与他相关的一些知识点。
JSON简介:
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSONObject与JSONArray的使用:
Json有两种结构:JSONObject与JSONArray。
对象结构以”{”大括号开始,以”}”大括号结束
数组结构以”[”开始,”]”结束,中间以逗号区分,每一个逗号分割开一个对象。[{“1”,”2”},{“3”,”4”}],类似数据里面包了N个list或jsonobject。
类型的相互转化:
jsonobject转化成字符串:可以通过JSONObject.toJSONString方法
string转化为class对象:可以通过JSONObject.parseObject(str,xxDo.class)转换成DO的形式
string转化为jsonarray:
通过JSONObject.parseArray(str)转化为jsonarray类型,然后通过get(i)获取每个list。
string 转json:
JSONObject jsonObj = JSONObject.parseObject(jsonString);
fastjson简介及用法:
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android、开源 。
引入依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.4</version> </dependency>
fastjson支持序列化及反序列化:
序列化是指从java对象转换到json字符串格式过程。
反序列化只指从json字符串转换到java对象的过程。
核心都是调用以下列举的一些方法:
public static final JSONObject parseObject(String text); // 把JSON文本转化成JSONObject public static final T parseObject(String text, Class clazz); // 把JSON文本转化为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本转化成JSONArray public static final List parseArray(String text, Class clazz); //把JSON文本转化成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。
Demo:
/** 将JSON字符串转换为JSON对象 **/ JSONObject json = JSON.parseObject(text) /** 将JSON字符串转换为JavaBean对象 **/ User user = JSON.parseObject(text, User.class) /** 将JavaBean对象转换为JSON字符串 **/ String jsonObject = JSON.toJSONString(user);
jackson实现bean转成json语句
这里再介绍另一种方式实现bean转换json的方法,就是通过jackson的readValue方法。
ObjectMapper mapper = new ObjectMapper(); ActItemDO actItemDO = null; try { actItemDO = mapper.readValue(json, ActItemDO.class); } catch (Exception e) { e.printStackTrace(); }
不过,我觉得还是fastjson提供的方法用法简单点,这里提供另一种思路仅供参考。
- JSON相关知识点
- JSON 知识点
- json 知识点
- json知识点
- json 相关
- JSON相关
- Json相关
- JSON相关
- json相关
- Json相关
- JSON相关
- JSON相关
- json相关
- Json相关
- JSON相关
- json相关
- JSON相关
- json相关
- 钩子技术介绍(HOOK 编程)
- 【论文】CVPR 2017论文:基于网格的运动统计,用于快速、超鲁棒的特征匹配(附代码)
- vue-router传递参数
- 网站架构
- Servlet小知识
- JSON相关知识点
- 【推荐】文本处理的卷积方法
- Spring中Quartz的配置
- Window一本满足
- webstorm 2017 激活破解
- 自定义View练习
- laravel中间件
- jdk7中Arrays.sort()和Collections.sort()排序方法使用注意
- 正则表达式用于模式匹配的String方法