为什么不能将JS对象文字转换为JSON?

时间:2017-07-01 12:09:27

标签: javascript jquery json frontend ecma

由于教程声称使用Javascript对象可以转换为JSON但是 当我尝试转换它时:

var myObj = { name:"John", age:31, city:"New York" };

使用:

var myJSON = JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;

它没有用。

但如果我这样做:

var myObj = { "name":"John", "age":31, "city":"New York" };
var myJSON = JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;

它有效。

为什么?如果它声称将JS对象转换为JSON,那为什么它不会?为什么我必须在字符串周围加上引号?如果我加上引号,那么它就不再是JS对象了。

3 个答案:

答案 0 :(得分:2)

试试这个:

var myObj = { name:"John", age:31, city:"New York" };
var encodedParams = $.param(myObj);

console.log(encodedParams);

我希望它能帮到你!

答案 1 :(得分:2)

看看这个JS Fiddle。它转换它就好了。 stringify创建JSON对象的字符串表示形式。您是否在浏览器的控制台输出中收到JavaScript错误?

var myObj = { name:"John", age:31, city:"New York" };
var myJSON = JSON.stringify(myObj);
var test = "demo_json.php?x=" + myJSON;

document.querySelector("#test").innerText = test;
<div id='test'></div>

答案 2 :(得分:1)

它在这里工作。

var myObj = { name:"John", age:31, city:"New York" };
var myJSON = JSON.stringify(myObj);

console.log(myJSON);
alert(myJSON);