json对象与json对象数组的串化和反串化(json串反斜杆的处理)

在json的使用中,根据不同的场景的需求,可以将json对象进行多次串化,得到带反斜杠的形式,例如,报文串化也会用到这样的转换,将json对象或者是json对象数组进行串化后传输。

串化后得到形为以下格式:

"{\"name\":\"张三\",\"sex\":\"男\",\"age\":18}"

或者

"[{\"name\":\"张三\",\"sex\":\"男\",\"age\":18}]"

这样的格式在js是能够很方便的处理的,这并不是非标准的json串,只是需要多一步操作而已

以下代码参考解释json对象和json对象数组的串化和反串化处理,可直接复制代码到浏览器中执行

//json对象
let data = {
    name: '张三',
    sex: '男',
    age: 18
};

//json对象串化
let dataStr = JSON.stringify(data);
console.log("json对象串化>>>" + dataStr);  //json对象串化>>>{"name":"张三","sex":"男","age":18}

//json对象反串化
let dataObj = JSON.parse(dataStr);
console.log("json字符串反串化>>>" + dataObj);    //json字符串反串化>>>[object Object]
console.log("获取反串化后的json对象的属性>>>" + dataObj.name);  //获取反串化后的json对象的属性>>>张三


//json对象串化-带反斜杠
let dataString = JSON.stringify(JSON.stringify(data));
console.log("json对象串化-带反斜杠>>>" + dataString);  //json对象串化-带反斜杠>>>"{\"name\":\"张三\",\"sex\":\"男\",\"age\":18}"

//json反串化-带反斜杠
let dataStringObj = JSON.parse(JSON.parse(dataString));
console.log("json反串化-带反斜杠>>>" + dataStringObj);    //json反串化-带反斜杠>>>[object Object]
console.log("获取反串化后的json对象的属性>>>" + dataStringObj.name);  //获取反串化后的json对象的属性>>>张三

console.log("----------------------------------------");

let arr = [];
arr.push(data); //将json对象添加到数组中

//json对象数组串化
let arrStr = JSON.stringify(arr);
console.log("json对象数组串化>>>" + arrStr);  //json对象数组串化>>>[{"name":"张三","sex":"男","age":18}]

//json对象数组反串化
let arrStrObj = JSON.parse(arrStr);
console.log("json对象数组反串化>>>" + arrStrObj);  //json对象数组反串化>>>[object Object]
console.log("获取反串化后数组中的json对象的属性>>>" + arrStrObj[0].name);  //获取反串化后数组中的json对象的属性>>>张三

//json对象数组串化-带反斜杠
let arrString = JSON.stringify(JSON.stringify(arr));
console.log("json对象数组串化-带反斜杠>>>" + arrString);  //json对象数组串化-带反斜杠>>>"[{\"name\":\"张三\",\"sex\":\"男\",\"age\":18}]"

//json对象数组反串化-带反斜杠
let arrStringObj = JSON.parse(JSON.parse(arrString));
console.log("json对象数组反串化-带反斜杠>>>" + arrStringObj);  //json对象数组反串化-带反斜杠>>>[object Object]
console.log("获取反串化后数组中的json对象的属性>>>" + arrStringObj[0].name);  //获取反串化后数组中的json对象的属性>>>张三

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值