Json对象和Json字符串的区别
2017-06-07 15:18
183 查看
最近在做移动开发的时候,返回的数据给弄混了,尤其是在使用springMVC的时候,后台@RequestBody接收的是一个json格式的字符串。输入参数一定是字符串。
现在总结一下json对象和json格式的字符串这两者的区别。
json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据。
JSON对象
表示的是一组键值对儿,并且用{}包含。通过对象.属性调用。例如:
以上就是json对象。是一个用perosn.name这种方式进行属性的调用。第三行代码就是看person的类型,为object类型。
JSON字符串
字符串是通过单引号(”)或者双引号(”“)引起来的变量。json字符串是一种可以转换成json格式的变量。不能通过对象.属性来调用
以上就是b就是一个字符串,也是一个json字符串,之所以叫json字符串,因为字符串的格式符合json的格式,所以叫做json字符串
明白这两个概念后,需要了解Java后台和前端解析json数据的方法。
先说后台
通过使用alibaba的fastJSon.jar来将数据序列化为json格式数据
反序列化:
通过json字符串转化成对象
再说前端,序列化json字符串,
将json对象转化为json字符串的方法:
将json字符串转化为json对象的方法:
一:使用$.parseJSON(str)
二:JSON.parse(str)
三:使用eval(‘(‘+str+’)’);
注意:前端和后端交互,
前端请求的参数必须使用json字符串传输数据。不能使用对象,否则后台接收不到数据
后端返回前台的数据可以是json字符串也可以是json对象
现在总结一下json对象和json格式的字符串这两者的区别。
json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据。
JSON对象
表示的是一组键值对儿,并且用{}包含。通过对象.属性调用。例如:
var person={"name":"tom","sex":"男","age":"24"}//json对象 console.log(person.name);//在控制台输出tom alert(typeof(person));//object
以上就是json对象。是一个用perosn.name这种方式进行属性的调用。第三行代码就是看person的类型,为object类型。
JSON字符串
字符串是通过单引号(”)或者双引号(”“)引起来的变量。json字符串是一种可以转换成json格式的变量。不能通过对象.属性来调用
var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串
以上就是b就是一个字符串,也是一个json字符串,之所以叫json字符串,因为字符串的格式符合json的格式,所以叫做json字符串
明白这两个概念后,需要了解Java后台和前端解析json数据的方法。
先说后台
通过使用alibaba的fastJSon.jar来将数据序列化为json格式数据
Object o=JSON.toJSON(map);//序列化json对象 String s=JSON.toJSONString(map);//序列化json字符串
反序列化:
通过json字符串转化成对象
JSON.parseObject(s);//反序列化
再说前端,序列化json字符串,
将json对象转化为json字符串的方法:
//使用全局方法 JSON.stringify(jsonstring) toJSONString(jsonstring)
将json字符串转化为json对象的方法:
一:使用$.parseJSON(str)
//由JSON字符串转换为JSON对象 var str='{ "name": "John" }'; var obj = jQuery.parseJSON(str) alert(obj.name);
二:JSON.parse(str)
var jsonstr= '{ "name": "mady", "age": "24" }'; var obj=JSON.parse(jsonstr); //可以将json字符串转换成json对象 alert(obj.name);
三:使用eval(‘(‘+str+’)’);
//由JSON字符串转换为JSON对象 var str='{ "name": "John" }'; var obj = eval('(' + str + ')'); alert( obj.name);
注意:前端和后端交互,
前端请求的参数必须使用json字符串传输数据。不能使用对象,否则后台接收不到数据
后端返回前台的数据可以是json字符串也可以是json对象
相关文章推荐
- JSON字符串与JSON对象的区别
- json对象和json字符串的区别
- json对象与json字符串的区别
- json对象和json字符串区别 ,fastJson使用
- Json对象和Json字符串的区别
- javascript json对象与json格式字符串区别
- JSON对象与JSON字符串的区别
- Json对象和Json字符串的区别 +
- JSON字符串、JSON对象的区别与两者之间的相互转换
- Json字符串与Json对象的区别
- JSON字符串与JSON对象的区别
- js中操作json,json对象和json字符串的转换与区别
- json格式字符串和json对象的区别
- JavaScript对象字面量(即JavaScript用户自定义对象)与JSON字符串的区别:
- 2014-12-03:hibernate get()与load()区别,json字符串转换为json对象,String与date相互转换
- 注意:json字符串与json对象的区别
- JSON字符串与JSON对象的区别,两者之间如何相互转换?
- 【问题-java-json】josn的发送与接收(全)解析json对象与字符串在js中的区别,以及后端spring该如何接收?
- 对JSON的操作,JSON字符串与JSON对象的区别
- json对象与json字符串的区别