什么是JSON
JSON(JavaScript Object Notion,JS对象标记)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁的清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,也易于机器解析和生成,并有效地提高网络传输效率。
在JS语言中,一切都是对象。因此,任何JS支持的类型都可以通过JSON来表示。其要求和语法格式为:
- 对象表示为键值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON是JS对象的字符串表示法,它使用文本表示一个JS对象信息,本质是一个字符串。
var obj = {a:'Hello',b:'World'};//这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a":"Hello","b":"World"}';//这是一个JSON字符串,本质是一个字符串
JSON和JS对象互转
要实现JSON字符串转为JS对象,使用JSON.parse()方法:
var obj = JSON.parse('{"a":"Hello","b":"World"}');//结果是{a:'Hello',b:'World'}
要实现从JS对象转换为JSON字符串,使用JSON.stringify()方法:
var json = JSON.stringify({a:'Hello',b:'World'});//结果是'{"a":"Hello","b":"World"}'
Java中实现对象向JSON字符串转换,需要几个步骤:
1.导入Jackson依赖
2.注入注解@ResponseBody,在注解下面用String类型的方法实现Java对象向JSON字符串的转换。
3.方法内部需要创建一个Jackson的对象映射器,通过调用映射器的writeValueAsString(对象);
4.最后,return 字符串//由于使用了@ResponseBody注解,这里会将str以json格式的字符串返回,十分方便。
例:
User user = new User(name:"anguang",age:3,sex:"male");
return new ObjectMapper().writeValueAsString(user);
如果前端出现乱码,在@ResponseBody前面使用@RequestMapping指定响应体返回类型及编码,@RequestMapping(value = “/地址",produces = “application/json;charset = utf-8”)
@ResponseBody注解就是把后台的对象转换成json对象,返回到页面。@RequestBody一般负责接收前台的json数据,把json数据自动封装到pojo中。