Javascript 如何将JSON对象转换为其他格式

Javascript 如何将JSON对象转换为其他格式,javascript,json,ecmascript-6,neo4j,Javascript,Json,Ecmascript 6,Neo4j,我有一个像这样的JSON对象 { "name": "Test Name", "age": 24 } 有没有一种方法可以将其转换为以下格式的字符串 { name: "Test Name", age: 24 } JSON将具有不同的长度和不同的属性 现在,我正在这样做,如下所示。对于更大、更复杂的JSON对象,这可能会变得太长和混乱。我需要知道是否有更简单、更干净的解决方案 let cypherQueryObject = '{'; cypherQueryObjec

我有一个像这样的JSON对象

{
    "name": "Test Name",
    "age": 24
}
有没有一种方法可以将其转换为以下格式的字符串

{
    name: "Test Name",
    age: 24
}
JSON将具有不同的长度和不同的属性

现在,我正在这样做,如下所示。对于更大、更复杂的JSON对象,这可能会变得太长和混乱。我需要知道是否有更简单、更干净的解决方案

let cypherQueryObject = '{';
cypherQueryObject += ` name: "${user.name}";
if (user.age) { cypherQueryObject += `, age: "${user.age}"` };
cypherQueryObject = '}';

你正在寻找的解决方案与别人期望的几乎没有什么不同。JavaScript的
JSON.stringify()
生成
JSON
字符串,一个有效的
JSON
包含
(仅双引号)围绕键

在您的例子中,您正在尝试使用JSON字符串,而不在键周围使用
。这里有一个简单的过程。在这里,我假设您将在简单的
JSON
字符串中使用它,其中任何键的值部分都没有
key:
之类的东西,那么对于较大的
JSON
,它也可以正常工作

如果不是这样,那么您需要以更高效的形式改进find&replace实用程序。正则表达式非常适合这项工作

在这里,我试图像这样解决你的问题

我使用了节点REPL来执行语句,因此请忽略默认返回的
未定义的

你也可以看看这个


基本上,您想删除包装键的引号?可能可以使用Regex执行字符串操作(请参见)@RobbyCornelissen这里的代码试图提供一个示例,说明我现在如何处理它。在我的真实代码中,大多数类似的事情都已经处理好了,比如布尔值、数字、其他JSON或数组。使用AST解析器进行解析,然后使用与真实JSON稍有不同的语法进行重新组装。很抱歉我的回答有点混乱,很明显我对这个问题读得不够深入。经过一些快速的谷歌搜索,我相信这是一个可能的复制,悲伤只有在与像示例一样简单的对象一起使用时才起作用。例如,如果键或值包含
或者如果存在嵌套对象。还要注意,一些输入JSON可能在
24
整数值周围有引号。是的,你说得对,我已经提到,如果@Ajil有任何复杂的JSON,那么他/她将需要改进代码的查找和替换实用程序。我只是根据当前提供的I/p进行演示。非常感谢。
> 
> let o = {
...     "name": "Test Name",
...     "age": 24
... }
undefined
> 
> s = JSON.stringify(o)
'{"name":"Test Name","age":24}'
> 
> s = JSON.stringify(o, undefined, 4)
'{\n    "name": "Test Name",\n    "age": 24\n}'
> 
> console.log(s)
{
    "name": "Test Name",
    "age": 24
}
undefined
> 
> for(k in o) {
... s = s.replace("\"" + k + "\":", k + ':')
... }
'{\n    name: "Test Name",\n    age: 24\n}'
> 
> console.log(s)
{
    name: "Test Name",
    age: 24
}
undefined
>