我尝试使用html帖子将对象传递给服务器。我已经对该对象进行了序列化并验证了该过程中没有错误。在我点击提交按钮后,我收到一个带有几个逃逸斜线的json字符串,我不知道为什么或如何防止这种情况发生。我使用node.js和express模块。
这是我得到的输出片段。
{"物镜":" {\"节点\":[{\" ID为\":0,\&#34 ;角色\":\"传感器\" \"间谍\":假,\" correctData \":真,\& #34;端口\":8000,\" requiresData \":[],\" connectedTo \":[]},<
HTML张贴
<form action="/result" method="post" enctype="json" autocomplete="off">
<input id="obj" name="obj" required>
<button type="button" name="action" value="getResult"
onclick="generateJSON(true)">generateJSON </button>
<button>Generiere Knoten</button>
</form>
使用Javascript:
function generateJSON(loaded){
if(loaded) {
var stuff = {nodes: localData, edges: localEdges};
stuff = JSON.stringify(stuff);
console.log("Result?:" + stuff);
$('#obj').val(stuff);
}
}
应该注意的是,该输入字段中显示的json字符串看起来非常精细。片段:
{&#34;节&#34;:[{&#34; ID&#34;:0,&#34;作用&#34;:&#34;传感器&#34;&#34;间谍&# 34;:假,&#34; correctData&#34;:真,&#34;端口&#34;:8000,&#34; requiresData&#34;:[],&#34; connectedTo&#34;:[] },
我发现这个answer最初对我有所帮助,因为我犯了同样的错误,但不知怎的,我仍然遗漏了一些东西。
编辑:找到解决方案
我找到了一种方法来删除那些反斜杠,从而再次得到了一个有效的json。莱斯利指出我正确的方向 - 再次感谢。我仍然不确定为什么会发生这种情况。
myJSONString = myJSONString.replace(/\\/g, "");