【发布时间】:2020-06-21 20:50:59
【问题描述】:
fetch("./files.json")
.then(response => response.json())
.then((users) => {
var files = users.find(x => typeof x[username] !== "undefined");
console.log(JSON.stringify(files);
files = files.replace(/:[ ]*"false"/,':false' ).replace( /'/g,'"');
})
上面我只是想将我所有的"true" 和"false" 替换为没有引号即 true false。
上面的错误replace is not a function,我也试过map,在undefined error上设置不了。在这些尝试之前,users 和 files 控制台很好。有没有能力在这里做到这一点?
回复数据为JSON.stringify后如下所示:
userMoves: [{id: "slz1", checked: "false"}, {id: "slz2", checked: "false"}, {id: "slz3", checked: "false"},…]
更新:首先将files 转换为字符串会更新第一个找到的false,但不是全部。
files = JSON.stringify( files ).replace(/:[ ]*"false"/,':false' ).replace( /'/g,'"');
【问题讨论】:
-
你能提供响应的例子吗?
-
我猜文件不是字符串,试试
files = JSON.stringify( files ).replace(/:[ ]*"false"/,':false' ).replace( /'/g,'"'); -
@admcfajn 嘿,所以我刚刚尝试了这个,它只是更新了第一个找到的 false 实例——但确实运行了;但是它并没有取代所有这些
-
如前所述,
files不是字符串,它是一个普通的 JS 数据结构。甚至不用正则表达式,只需进行正常迭代并直接设置您需要设置为特定内容的属性。 -
@AlexOwl 是的,我有
标签: javascript json regex loops