如何对JSON数据进行格式转换

如何对JSON数据进行格式转换

JSON数据

[javascript Object Notation]JavaScript对象表示法 是一种轻量级的数据交换格式

json的数据结构

● 一种是“名称/值”的组合 , 一般被称之为对象
"名称/值"的格式一般是左边以{开始,右边以}结束,每个名称后面跟冒号:,多个组合之间用逗号,分割。
如何对JSON数据进行格式转换_第1张图片

● 一种是有序列表 , 一般被称之为数组。
以[开始,以]结束,中间是无序的value值,可以是value值可以是任意格式
如何对JSON数据进行格式转换_第2张图片

对value值的说明:value值可以是双引号括起来的任意数据格式,包括(字符串string、数值number、布尔值、null、对象object、数组array等)
如何对JSON数据进行格式转换_第3张图片

参考链接: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"}}

你可能感兴趣的:(解决方案,javascript,解决方案)