Javascript JQuery和JSON.stringify

Javascript JQuery和JSON.stringify,javascript,stringify,Javascript,Stringify,在学习Javascript和JQuery的过程中,我觉得自己在一个黑洞中寻找一个非常基本的代码。我需要将JS对象转换为字符串usign JSON.stringify。 该对象是通过组合来自不同来源的数据块构建的。 为了简化问题,这是一个简单的示例,其中有一个输入字段用于输入对象的数据: <html><head><meta charset="UTF-8" /></head> <body> <input type="text" id=

在学习Javascript和JQuery的过程中,我觉得自己在一个黑洞中寻找一个非常基本的代码。我需要将JS对象转换为字符串usign JSON.stringify。 该对象是通过组合来自不同来源的数据块构建的。 为了简化问题,这是一个简单的示例,其中有一个输入字段用于输入对象的数据:

<html><head><meta charset="UTF-8" /></head>
<body>
<input type="text" id="txt" value="{Name: 'John Smith'  ,  Value: 99}">`
<button id="test" type="text" value="3">TEST</button>

<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{   
$("#test").on('click',test);
}); 

function test() {
    query = $("#txt").val();
    json = JSON.stringify(query);
    console.log("query="+json); //"{Name: 'John Smith'  ,  Value: 99}"

    query={ Name: 'John Smith', Value: 99 };
    json = JSON.stringify(query);
    console.log("query="+json); //{"Name":"John Smith","Value":99}

    return false;
};
</script>

</body>
</html>
如您所见,输入文本没有“字符串化”,而内联代码是。 错误在哪里? 谢谢

如您所见,输入文本没有“字符串化”,而内联代码是。错误在哪里

从输入中读取的值已经是字符串,而不是对象。

以下几点:

从输入字段获取的值已经是字符串类型;和 JSON并不喜欢用单引号来告诉你真相。因此,您设置的值value={Name:'John Smith',value:99}不是有效的JSON格式。 解决方案


您可以尝试从代码中删除第一行JSON.stringify用法。并且,将输入字段值中的引号切换为:value='{Name:John Smith,value:99}'。这应该能帮你解决问题。

你能加把小提琴吗?如果你想把一根弦串起来,它就会把它原封不动。$'val已经是一个字符串了。所以我不明白“stringify”应该做什么。我建议它应该添加缺少的引号,并将单引号转换为双引号,同时删除额外的空格。我有几个输入,我希望stringify在简单连接时能够同时处理所有输入的格式设置,即高度=40+','+宽度=20。。。将“=”替换为冒号。实际上,当我尝试使用Ajax发布数据={Name:John Smith,Value:99},使用datatype=JSON时,会得到“位置1中的无效字符”或类似的结果。这就是为什么我要尝试JSON.stringify.JSON.stringify只是将传递给它的JSON对象转换为有效的JSONString。如果您希望获得格式良好的JSON,请尝试以下方法:JSON=JSON.stringifyJSON.parse$txt.val;。在你尝试这个之前,确保你已经像我说的那样翻转了引号。