Javascript 如何将JSON对象转换为其他格式
我有一个像这样的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
{
"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
>