json字符串与json对象、json序列化与反序列化

来源:互联网 发布:led屏幕软件下载 编辑:程序博客网 时间:2024/06/05 15:45

json对象

 var person={"name":"tom","sex":"男","age":"24"}//json对象 console.log(person.name);//在控制台输出tom alert(typeof(person));//object

以上就是json对象。是一个用perosn.name这种方式进行属性的调用。第三行代码就是看person的类型,为object类型。

JavaScript中的字符串是单引号或者双引号引起来的。将json对象用引号引起来即可成为json字符串。

var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"}  alert(typeof(b));//string

以上就是b就是一个字符串,也是一个json字符串,之所以叫json字符串,因为字符串的格式符合json的格式,所以叫做json字符串,第三行代码也匹配其中的类型为string。

json字符串和json对象的转换

json字符串转json对象:
JSON.parse(string); js 方法
或者angular.fromJson(string)
或者 eval(“(” + jsonStr + “)” 方法

json对象转为json字符串:
JSON.stringify(object) js方法
或者angular.toJson(object)

Javascript支持的转换方式:
eval(‘(’ + jsonstr + ‘)’); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

示例:

   /*  =======字符串和对象的转化========*/            //字符串-->对象:JSON.parse(string); js 方法或者angular.fromJson(string)或者eval方法            var jsonStr = '{"name":"李四"}';            console.log(typeof(jsonStr));//string            console.log("JSON.parse==" + JSON.parse(jsonStr).name);            //[object Object],对象的属性,李四            console.log("angular.fromJson==" + angular.fromJson(jsonStr).name);            //[object Object],对象的属性,李四            console.log("eval===" + eval("(" + jsonStr + ")").name);            //[object Object],对象的属性,李四            console.log(typeof(angular.fromJson(jsonStr)));//object            // 对象-->字符串:JSON.stringify(object) js方法或者angular.toJson(object)            var obj8 = {"name": '李四'};            console.log(typeof(obj8));//object            console.log("JSON.stringify==" + JSON.stringify(obj8));            //{"name":"lisi"}            console.log("angular.toJson==" + angular.toJson(obj8));            //{"name":"lisi"}            console.log(typeof(angular.toJson(obj8)));//string

参考:

Json对象和Json字符串的区别

Json对象与Json字符串互转(4种转换方式)

json:

JavaScript Object Notation(JavaScript 对象表示法),说白了Json就是一种字符串,一种带有格式的字符串,一种可读性很强,操作方便的字符串。因为Json字符串存储信息的方式和hashtable,Dictionary一样都是键值对的形式。

Json的结构很简单,也很复杂。简单是因为Json的结构只有两种:对象和数组。

对象和数组大家都很熟悉,在JS中对象的表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 “对象.key” 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [” 数值1”,”数值2”,”数值3”,…],取值方式和其他语言中一样,使用索引获取,字段值的类型和上面对象的属性值一样,可以是 数字、字符串、数组、对象几种。

JSON对象与JS对象字面量相比,有三点不同:
1、没有声明变量
2、没有末尾的分号
3、对象的属性(键)必须加双引号
数组类似。

js中:

var trav = {    destination: "China",    number: 5};

json:

{    "destination": "China",    "number": 5}

Json的序列化和反序列化

这里的序列化主要就是为了传输方便,将要传输的对象序列化为二进制的数据流,效率极高,接收时通过反序列化转化成对象,从而达到一个传输的效果。简单点来说,序列化就是将对象转换成Json格式的字符串,反序列化就是逆过程,将Json串转换成对象。

参考:

Json和其序列化和反序列化

JSON的自定义序列化和解析

0 0
原创粉丝点击