【发布时间】:2019-08-21 18:46:24
【问题描述】:
我希望能够通过放置文本输入元素的值和“值”来编辑对象值 > JSON.stringify(txt, null, 2) 该部分工作正常。
提交该输入后,我会在所有引号后留下一个包含“/n”和“\”的字符串文字。我试过 regex 和 string.replace() 试图删除那些但没有任何效果,我的输出总是这样的:
"publisher": "[{\"name\":[\"scripps re\"],\"url\":[\"url.com\"]}]",
我也尝试过JSON.parse(txt),它记录正常,但结果仍然包含换行符和反斜杠。
问题:
有没有办法从输入元素中获取编辑后的文本并将其转换回没有字符串文字标记的有效 JSON?
我正在使用:
VueJS、JS。
我尝试像这样绑定输入字段的值:
inputVal = JSON.stringify(object[keyname])
效果很好。
问题:
分配新编辑的txt:
Vue.set(object, keyname, newValue)
newValue 总是有 /n's 和 \'s
我试过了:
Vue.set(object, keyname, newValue.replace('/n'g,""))
Vue.set(object, keyname, JSON.parse(newValue))
{
"publisher": "[{\"name\":[\"scripps re\"],\"url\":[\"url.com\"]}]",
"license": {
"text": "CC BY-NC 4.0",
"url": "http://creativecommons.org/licenses/by-nc/4.0/",
"description": "Attribution-NonCommercial 4.0 International"
}
我如何编辑'license' 的值,例如,使用文本区域输入并保存回有效的 JSON?
预期的结果应该是(美化与否,只是没有换行符):
{
"publisher": "[{"name":["scripps re"],"url":["url.com"]}]",
"license": {
"text": "CC BY-NC 4.0",
"url": "http://creativecommons.org/licenses/by-nc/4.0/",
"description": "Attribution-NonCommercial 4.0 International"
}
【问题讨论】:
-
当你做 newValue.replace('/n'g,"") 没有删除行尾吗?
-
不,似乎没有任何效果,我无法理解它们
-
当我试图摆脱一些与字符串相关的间距时,我会说:
str.replace(/[\n\t\r]/ig, '');以去除回车、制表符等。 -
所有这些都应该工作,但由于某种原因没有任何工作,并且该值始终具有 /n 和 \ 。也许是 Vue 做的,IDK...
-
发布者和许可的每个属性是一个文本输入,还是整个发布者属性只有一个文本输入?
标签: javascript json string vue.js