跳到主要内容

JSON

1、JSON语法

  • 数据使用key:value表示
  • 使用大括号保存对象,key后面接: 使用,分隔
  • 使用方括号保存数组,数组值使用,分隔
{
"key": "value",
"obj": {},
"arr": [
]
}

2、使用

2.1、js 字符串转 JSON 对象 (JSON.parse())

语法

JSON.parse(text[, reviver])

var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

2.2、js 对象装字符串 (JSON.stringify())

语法

JSON.stringify(value[, replacer[, space]])

var obj = {"name": "runoob", "alexa": 10000, "site": "www.runoob.com"};
var myJSON = JSON.stringify(obj);

Fastjson2

时间类型转换

设置字符串格式

  1. JSONObject.DEFFAULT_DATE_FORMAT="yyyy-MM-dd";//设置日期格式
  2. JSONObject.toJSONString(resultMap, SerializerFeature.WriteMapNullValue,SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteDateUseDateFormat);
  3. @JSONField(format="yyyyMMdd")

jdk11jdk17 中,com.alibaba.fastjson.JSON#toJSONString(java.lang.Object)Date 字段的处理是不一样的。

jdk11 会转时间戳,例如 2022-02-02 12:12:12 转为 1643767932000

jdk17 则会转为 2022-02-02 12:12:12

解决方法:

  1. 在序列化对象的 Date 类型的成员变量上加上 @JSONField(format="yyyy-MM-dd HH:mm:ss")
  2. 显示指定: JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);