如何对JSON数据进行格式转换
JSON数据
[javascript Object Notation]JavaScript对象表示法 是一种轻量级的数据交换格式
json的数据结构
● 一种是“名称/值”的组合 , 一般被称之为对象
"名称/值"的格式一般是左边以{开始,右边以}结束,每个名称后面跟冒号:,多个组合之间用逗号,分割。
● 一种是有序列表 , 一般被称之为数组。
以[开始,以]结束,中间是无序的value值,可以是value值可以是任意格式
对value值的说明:value值可以是双引号括起来的任意数据格式,包括(字符串string、数值number、布尔值、null、对象object、数组array等)
👉 参考链接:http://www.json.org/json-zh.html
JSON数据解析
JSON字符串转为js对象
● eval()方法处理
eval()方法是js提供的一个计算器,参数为一个必输入的可计算字符串,会返回计算的结果。
说明:如果数据是来自于第三方服务器,请谨慎慎用该函数
● JSON.parse()方法处理
js提供的对标准json数据解析的函数,接收两个参数,JSON.parse(json[,revicer]),第一个参数为json数据,第二个参数为要对数据进行处理的函数(非必须);
两种方法转换实例
let json1 = '{"name":"jianyao" , "age":"29"}';
let json2 = '{"status":"1" , "msg":"" , "data":{"name":"jianyao","age":"29"}}';
let json3 = "{'status':'1' , 'msg':'' , 'data':{'name':'jianyao','age':'29'}}";
let eval1 = eval('('+json1+')');
let eval2 = eval('('+json2+')');
let eval3 = eval('('+json3+')');
console.log(eval1.name); //jianyao
console.log(eval2.data.name); //jianyao
console.log(eval3.data.name); //jianyao
let parse1 = JSON.parse(json1);
let parse2 = JSON.parse(json2);
let parse3 = JSON.parse(json3);
console.log(parse1.name); //jianyao
console.log(parse2.data.name); //jianyao
console.log(parse3.data.name); //Uncaught SyntaxError: Unexpected token ' in JSON at position 1
JS对象转换为json对象
● JSON.stringfy()方法
主要用于向服务器发送数据,可以将js数组、对象转换为json字符串
代码实例
let array = ["july","jenny","lady"];
let object1 = {status:1 , msg:"发送的数据",data:{name:["july","jenny","lady"] , age:"29"}};
let arrayJson = JSON.stringify(array);
let objJson = JSON.stringify(object1);
console.log(arrayJson); //["july","jenny","lady"]
console.log(objJson); // {"status":1,"msg":"发送的数据","data":{"name":["july","jenny","lady"],"age":"29"}}