我一直试图在package.json的末尾添加新字段。 我不能使用
- JSON.parse
- 添加新项
- JSON.stringfy
方法,因为它给了我单行输出。我不想在git diff中更改package.json中的其他行,我只需要查看所有新属性即可。
因此,在尝试获取字符串格式的package.json后,我尝试查找最后一行。 这些是步骤
- 删除右花括号
- 查找最后一行(修剪空白并输入)
- 添加逗号
- 在下一行添加新属性
- 添加右花括号
这有效,但是json也可能在和处包含数字,空值,布尔值(真/假)。如果是这种情况,如何检测到这些?还请让我知道json可能具有的其他任何类型。
第一种方法,这要感谢 @jonrsharpe 的贡献。
packageJSON = `{
"abc": "def","qwe": true
}
`
function addNewField(packageJSON){
const obj = JSON.parse(packageJSON)
obj["newField"] = {
z: "zzz",x: 100
}
return JSON.stringify(obj,null,2)
}
const resultStr = addNewField(packageJSON)
/*
"{
"abc": "def","qwe": true,"newField": {
"z": "zzz","x": 100
}
}"
*/