- json字符串转化为对象 (json–js)
var str = '{"name":"zxy", "age" : "14" }'//json格式的数据
var obj = JSON.parse(str,fun)//解析
function fun(name,value){
//内部做一些预处理
if(name == "age"){
value = "小孩";
}
console.log(name + ":" + value); //控制台输出
return value;
}
- js对象转化为json字符串
JSON.stringify( value[, replacer[, space] ])
var obj = { //js对象
name : "zxy",
age: 20
};
var jsonstr = JSON.stringify(obj,fun);//把js对象解析为json格式
function fun(name,value){
if(name == "age"){//处理格式
value = "芳龄";
}
console.log( name + ":" + value); //控制台输出格式
return value;
}
console.log(jsonstr);
var obj = { //js的数组操作
a:1,
b:2,
c:3
};
var jsonstr = JSON.stringify(obj,["b","c","a"]);//第一个是对象,第二个是数组,将js数据解析为json格式
console.log(jsonstr);
Ajax
json文件被放置在服务器端,客户端请求,实现异步传输(在进行ajax交换数据操作的时候,其他的操作仍可以进行)
// 使用ajax发送请求到服务器端,并输出到控制台
var xmlhttp;
xmlhttp = createXHR();
xmlhttp.open("GET","test.json",true); //发送请求方式,文件url地址,是否异步
xmlhttp.send(); //发送数据
xmlhttp.onreadystatechange = function(){ //响应函数,接收完毕信号
if(xmlhttp.readyState == 4 && xmlhttp.state == 200){ //判断状态是否正确,4表示请求完成,200表示响应就绪
var jsonstr = xmlhttp.responseText; //保存返回的字符串
console.log(jsonstr);
}
}
function createXHR() { //不同类型浏览器的创建 ajax对象创新
if(window.XMLHttpRequest){
// IE7++
return new XMLHttpRequest();
}else{
//IE6及以下
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
XML字符串和json对象转换