1、json是js的子集,有6种数据结构:
number,boolean,string,null,array([ ]),object({ })
2、字符集必须是UTF-8,json字符串必须要用双引号,object键值也要用双引号
3、序列化
JSON.stringify(obj);//JSON必须大写
JSON.stringify(obj,null,' ');//有空格,按缩进输出
JSON.stringify(obj,['name','age'],' ');//输出指定属性
JSON.stringify(obj,function,' ');//传入一个函数
toJSON:function(){ //obj里面的一个方法然后调用 JSON.stringify(obj)
return{
'name':this.name,
'age':this.age
}
}
4、反序列化
JSON.parse('[1,2,3,true]');//[1,2,3,true]
JSON.parse('{"name":"小明","age":18}');//Object{name:'小明',age:18}
JSON.parse('true');//true
JSON.parse('123.45');//123.45
5、用来转换解析出的属性
var obj=JSON.parse('{"name":"xiaoming","age":14}',function(key,value){
if(key==='name'){
return value+'90';
}
return value;
});
console.log(JSON.stringify(obj));//{name:'xioaming90',age:18}
6、使用雅虎天气API
var url='https://query.yahooapis.com/v1/public/yqlq=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json';// 从远程地址获取JSON:
$.getJSON(url,function(data){
// 获取结果:
var city = data.query.results.channel.location.city;
var forecast = data.query.results.channel.item.forecast;
var result = {
city: city,
forecast: forecast
};
alert(JSON.stringify(result, null, ' '));
});
7、qs.parse()将URL解析成对象的形式
qs.stringify( )将对象解析成URL的形式