什么是JSON?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON与JS:JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。 JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式.
var obj = {a: 'Hello', b: 'World'};
var json = '{"a": "Hello", "b": "World"}';
__________________________________
要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}');
要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'});
任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。
java中的JSON
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。 JAVA中的四种JSON解析方式: 1、JSON官方 2、GSON 谷歌开发的 JSON 库,功能十分全面。 3、FastJSON 阿里巴巴开发的 JSON 库,性能十分优秀。(可参考菜鸟教程链接) 4、jackson 社区十分活跃且更新速度很快。SpringMVC内置的解析器就是这个 (详情可参考文档链接) 除了JSON官方的对类没有要求,剩下的都要求是标准的类,否则无法解析,因为都用到了反射。
JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {“name”:“JSON”,“address”:“北京市西城区”,“age”:25}//JSON的对象格式的字符串 [{“name”:“JSON”,“address”:“北京市西城区”,“age”:25}]//数组对象格式
FastJSON
参考链接 提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
json字符串转化为json对象
实际示例:json字符串中添加字段。我们可以把JSONObject 当成一个 Map<String,Object> 来看,只是 JSONObject 提供了更为丰富便捷的方法,方便我们对于对象属性的操作,比如增加操作 如下添加userId。
public class SysJobCreateVO extends AbstractVO {
private static final long serialVersionUID = -8134601803575267896L;
private String jobParams;
}
------------------------------------------------------------------
JSONObject jsonObject = JSON.parseObject(sysJobCreateVO.getJobParams());
jsonObject.put("userId", ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId());
String param = JSON.toJSONString(jsonObject);
sysJobCreateVO.setJobParams(param);
json字符串转化为对象
User req = JSON.parseObject(json, User.class);
参考文档
参考文档: https://www.cnblogs.com/wenqiangit/p/11575508.html 菜鸟教程:https://www.runoob.com/w3cnote/java-json-instro.html
|