标签:json
开始参考了json规范,这个文档写的比较乱,下面重新整理了下.另外官方文档也比较清楚
JSON文本是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个实字名。
以下是六个构造字符:
符号 | 含义 | 中文名称 |
---|---|---|
begin-array | [ | 左方括号 |
begin-object | { | 左大括号 |
end-array | ] | 右方括号 |
end-object | } | 右大括号 |
name-separator | : | 冒号 |
value-separator | , | 逗号 |
在这六个构造字符的前或后允许存在无意义的空白符。
ASCII码 | 名称 |
---|---|
0x20 | 空格符 |
0x09 | 水平制表符 |
0x0A | 换行符 |
0x0D | 回车符 |
JSON必须(MUST)是一个对象、数组、数字或字符串,或者是实字名:
value = false / null / true / object / array / number / string
2.1. 实字名
只有三个 false null true
实字名必须(MUST)是小写的,且不允许有其它的实字名。
2.2. 对象
对象结构被表示为:一对大括号包围着零个或多个name/value对(或者是成员)。
2.3. 数组
数组结构表示为:方括号包围着零个或多个值(或是元素)。元素间以逗号相隔。
2.4. 数字
数字的表示法与其它多数编程语言相似。要点:
- 不允许有八进制及十六进制形式。
- 前面带有0也是被禁止的。
- 数字值不能表示成阿拉伯数字数字的序列(如Infinity和Nan是不允许的)。
2.5. 字符串
- string以引号开始与结束。
- 所有的Unicode字符都可以放置在引号中,除了转义字符:引号、反斜杆\、控制符(U+0000 - U+001F),这些字符可以用unicode编码表示:”\u005C”。
- 另一种办法,可以用两个转义字符序列来表示一些常用的字符。所以像只包含一个反斜杆字符的字符串可以更简洁的表示成”\”。
详细官方文档
主要接口
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); //6将JavaBean转换为JSONObject或者JSONArray。
几个常用功能:
1.不规范名称处理
可以把@JSONField配置在字段或者getter/setter方法 如@JSONField(name=”_ID”),详细可参考官方文档
2.日期处理
处理日期的API,序列化JSON.toJSONStringWithDateFormat(date, “yyyy-MM-dd HH:mm:ss.SSS”)
反序列化能够自动识别如下日期格式:
3.定义某几个字段被序列化处理
使用SimplePropertyPreFilter过滤属性,参考
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(VO.class, "name1", "name2");
JSON.toJSONString(vo, filter);
4.JSON格式化输出
如JSON.toJSONString(XX,SerializerFeature.PrettyFormat);
标签:json
原文地址:http://blog.csdn.net/lichangzhen2008/article/details/46536495