gpt4 book ai didi

javascript - 如何去除 javascript 中的 json 注释

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:40 34 4
gpt4 key购买 nike

如何去除 javascript 中的 json 注释?我认为正则表达式将是一种简洁的方式。

{
"filed": { // comments
"n": 1 /* multi-line ...
comments */
},
"field2": " // comments in string , /* here */ "
}

应该适用于上面的例子。
注意:字符串中的注释不应该被删除。

更新:我知道 json 中的注释无效,但为了简单起见,我想拥有它们然后删除它们,我看到很多工具都支持解析带有注释的 json。

更新 2:上面的例子本身就是一个字符串,我没有解释(抱歉),现在看到一些认为它是 js 代码的答案。

更新 3:我再次忘记将键名放在双引号中,更新了问题。

最佳答案

虽然在 JSON 中注释不是标准做法,但在某些情况下它可能很有用。为此,我为 nodejs 编写了一个小包:json-easy-strip

您的 JSON 文件可以包含任何有效的 JS 注释:

{
/*
* Sweet section
*/
"fruit": "Watermelon", // Yes, watermelons is sweet!
"dessert": /* Yummy! */ "Cheesecake",
// And finally
"drink": "Milkshake - /* strawberry */ or // chocolate!" // Mmm...
}

下面是我们如何剥离它:

//
// Our JSON string
let jsonString = `{
/*
* Sweet section
*/
"fruit": "Watermelon", // Yes, watermelons is sweet!
"dessert": /* Yummy! */ "Cheesecake",
// And finally
"drink": "Milkshake - /* strawberry */ or // chocolate!" // Mmm...
}`;

//
// One-liner comment stripper
jsonString = jsonString.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, (m, g) => g ? "" : m);

//
// Parse jsonString and print result
console.log(JSON.parse(jsonString));

//
// Result
// {
// fruit: "Watermelon",
// dessert: "Cheesecake",
// drink: "Milkshake - /* strawberry */ or // chocolate!"
// }

关于javascript - 如何去除 javascript 中的 json 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483667/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com