大致概念如下:
JSON对象如同++、C#等语言中类创建的对象一样,可以用"对象.属性"的方式调用其属性(方法),js中同样可以对JSON对象直接获取其属性等;
JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,只可作为一个普通的字符串使用。
例如:
JSON对象:
var person={"name":"薛之谦","sex":"男","lover":"you"}alert("薛之谦钟情于:" + person.lover);//薛之谦钟情于:youperson就是一个json对象。可以用perosn.lover(.name .sex)这种方式进行属性的调用。
JSON字符串:
json字符串,即js中用单引号或者双引号引起来的内容。
var person='{"name":"薛之谦","sex":"男","age":"34"}'; alert(person);//{"name":"薛之谦","sex":"男","age":"34"}person就是一个json字符串,只可以将其作为一个整体进行操作,除了截取这一途径外,不能直接获取其中存储的部分数据。
通常情况下,调用wcf服务等,返回到前端给我们的都为一个json字符串。
例如:
wcf中利用:
JsonConvert.SerializeObject:可以将自定义的类序列化 :{\"name\":\"张三\",\"sex\":\"F\"} ; 单独一个字符串,序列化为: /"value/"JsonConvert . DeserializeObject:反序列化为json对象{"name": "张三","sex": "F"}直接使用字符串的话,对我们来说意义不大,因此通常情况下是需要将其转换为json对象来进一步的处理。JSON字符串和JOSN对象的转换:
将"JSON字符串"转化为"JSON对象"的方法
①使用$.parseJSON(str)
var person='{ "name": "薛之谦" }'; var obj = jQuery.parseJSON(person); //$.parseJSON(person)
②JSON.parse(str)
var data= '{ "name": "ryanSu", "age": "25" }'; data= JSON.parse(data); alert(data.name); //ryanSu
③使用eval('('+str+')');
var person='{ "name": "ryanSu" }'; var data= eval('(' + person+ ')'); alert( data.name);以上均会输出name属性所对应的值。①②仅适用于标准格式'{ "name": "ryanSu" }'
③可以转换以下标准和非标准格式字符串:
var data1="{ 'name': 'ryan' }"; var data2='{ "name": "ryan" }'; var data3="{ name: 'ryan' }";
将"JSON对象"转化为"JSON字符串"的方法
使用全局方法①JSON.stringify()与②toJSONString()
例如:
var data=object.toJSONString();
var data=JSON.stringify(object);
alert(data);
均可以将json对象转化为json字符串,进而作为一个整体进行alert(虽然没什么意义)。