javascript - 如何在字符串中找到最后一行(package.json)
问题描述
我一直在尝试在 package.json 的末尾添加新字段。我无法使用
- JSON.parse
- 添加新项目
- JSON.stringfy
方法,因为它给了我单行输出。我不想在 git diff 中更改 package.json 中的其他行,我只需要查看新属性即可。
所以我试图在以字符串格式获取 package.json 后找到最后一行。这些是步骤
- 删除右花括号
- 查找最后一行(修剪空格并输入)
- 添加逗号
- 在下一行添加新属性
- 添加右大括号
这可行,但是 json 也可能在 and 处包含数字、null、布尔值(真/假)。如果是这种情况,我该如何检测这些?也请让我知道任何其他类型的 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
}
}"
*/
解决方案
推荐阅读
- java - 如何修复 org.eclipse.jgit.api.errors.JGitInternalException:Entry not found by path Exception while doing commit using Egit
- python - 如果条目本身是结构化数组,如何将 numpy 数组中的条目设置为 0 或 None?
- python - 只获取一些标签
使用网站上的 BeautifulSoup
- sql-server - 当 Duration_Hours 是另一个数据库表的 LEFT JOIN 时,如何求和?
- apache-kafka-streams - 我可以在 Kafka 中压缩 KafkaStream 使用的中间主题(状态存储)吗
- python - 即使我使用的是 try 和 except 方法,也无法避免 ElementNotVisibleException
- python - 为什么使用 pandas 和 xlsxwriter 会出现值错误?
- php - PHP exif_read_data():无法打开文件查询
- java - xsd 模式生成的类中的问题
- scala - LazyList .scanLeft() 在空列表上调用