【发布时间】:2017-07-28 09:11:23
【问题描述】:
我读取了一个JSON外观的文件,格式类似如下:
{
varParent1: {
var1: true,
var2: "this is a string",
var3: 0,
var4: "another string"
},
varParent2:{
var1: false,
var2: 0,
var3: 92,
var4: "string here",
var5: "string2 here"
}
}
我在变量中有这段代码,但我无法编辑文件,所以我应该只使用变量。
正如大家所见,它不是一个有效的 JSON 格式,所以我无法解析它。我需要将其格式化为:
{
"varParent1": {
"var1": true,
"var2": "this is a string",
"var3": 0,
"var4": "another string"
},
"varParent2":{
"var1": false,
"var2": 0,
"var3": 92,
"var4": "string here",
"var5": "string2 here"
}
}
我已经考虑过逻辑并且我有一个结论(我认为这很好):我必须在每行的开头和结尾以及“:”之间添加'''。但我无法做到用正则表达式做到这一点。
有没有更简单的方法?
【问题讨论】:
-
@George — 如何将文件中的数据解析为 JavaScript 变量,以便使用 JSON.stringify?
-
@Quentin 我的错,我没有正确阅读问题。将文件本身中的数据更改为 JSON 而不是在代码中乱七八糟地处理它不仅更容易吗?我能看到解析数据的唯一方法是使用
eval() -
@George 首先,感谢您的回答。我无法编辑该文件,因为它在服务器上,而我只有读取权限。这就是我试图用正则表达式解决它的主要原因。
-
@H77 — 当文件在变量中时,它将是一个字符串,而不是一个对象。 JSON.stringify 将只创建该字符串的 JSON 表示形式(即用
\n替换新行,在每个引号前加一个斜杠并将其括在引号中)。 -
@H77 — 这不是 JSON!这个问题很清楚地说明了这一点。解析它会抛出一个错误。
标签: javascript json regex