JS字符串转JSON对象的三种方法详解:eval、new Function与JSON.parse
本文主要讲解“JS如何将字符串转换为json对象”。有兴趣的朋友不妨看一下。本文介绍的方法简单、快速、实用。现在就让小编带你学习《如何在JS中将字符串转换为json对象》!

js 将字符串转换为json对象的三种方式
无论字符串是否包含转义字符,都可以转换为Json对象。
1、js自带的eval函数需要加括号 eval('('+str+')');
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
2.新增函数形式
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
3. 全局JSON对象
function strToJson(str){
return JSON.parse(str);
}
使用这种方法限制稍微多一些,需要严格遵守JSON规范。例如属性需要用引号括起来,如下
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
该名称不包含在引号中。使用JSON.parse时,所有浏览器都会抛出异常,解析失败。
如果字符串未定义或'',使用上述三种方法时都会报错,所以需要先具体判断字符串是未定义还是空字符串。如果没有,可以使用以上三种方法进行转换。一般来说,使用第一种方法是最简单的。
转载自:使用js将字符串转json的三种方法
javascript 将对象转换为 json 字符串
JSON.stringify
JSON.stringify 方法将对象转换为 JSON 字符串形式
const userInfo= {
name: 'zs',
age: 20
}
console.log(JSON.stringify(userInfo));
// {"name":"zs","age":20}
JSON.stringify 语法
语法:可以有三个参数。第一个是传入要序列化的值,第二个是函数或数组,第三个是给文本添加缩进、空格和换行符。
JSON.stringify(value, replacer, space)
value:第一个参数,要排序为 JSON 字符串的值。
替换者:[可选]第二个参数
(1)如果参数是函数,在序列化过程中,序列化值的各个属性都会被函数进行转换处理;
(2) 如果参数是数组,则只转换数组中具有键值的成员。成员的转换顺序与数组中的键相同。
(3) 如果不提供该参数或者为null,则该对象的所有属性都会被序列化。
space:【可选】第三个参数,美化文本格式,为文本添加缩进、空格和换行符。
(1) 如果参数为数字,则返回值文本每级缩进指定数量的空格
(2) 该参数的最大值为10。如果该参数大于10,则文本将缩进10个空格。
(3) 该参数也可以使用非数字,如:。最大值为 10
最常用的
JSON.stringify(eval(stu, null, 2)
如果要将包含转义字符的字符串转换为json字符串
首先尝试eval将字符串转换为json对象,然后使用JSON.stringify将json对象转换为json字符串。
JSON.stringify(eval(`(${stu})`), null, 2)
如果需要专门判断空字符串,只需添加一个三元运算符即可。
stu ? JSON.stringify(eval(`(${stu})`), null, 2) : ''
转载时请注明:JS如何将字符串转换为json对象 |李雷博客 - PHP博客