JS字符串转JSON对象的三种方法详解:eval、new Function与JSON.parse

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

JS字符串转JSON对象的三种方法详解:eval、new Function与JSON.parse

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博客

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

46阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

38阅读

php一句话木马,一句话木马ctf

2026年10月05日

41阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

43阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

41阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

38阅读