【问题标题】:Why can't be a JS object literal converted to JSON ?为什么不能将 JS 对象文字转换为 JSON ?
【发布时间】:2023-03-08 12:48:01
【问题描述】:

由于教程声称使用 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 对象了。

【问题讨论】:

  • “它不起作用”是什么意思?
  • 它真的转储用httpget发送json字符串,而不是先编码
  • 引号与否不会改变它是否是一个JS对象。

标签: javascript jquery json frontend ecma


【解决方案1】:

试试这个:

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

console.log(encodedParams);

希望对你有帮助!

【讨论】:

    【解决方案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>

    【讨论】:

    • @Hassan Imam 你有什么理由编辑我的帖子并添加了 jQuery?代码不需要 jQuery 即可运行。它使用 JavaScript 的 Selector API。只是好奇。
    • 道歉人,是的,你可以删除 Jquery。我以为你在使用 Jquery,这就是我包含它的原因。以上代码不需要Jquery。
    • 没问题。我只是觉得我错过了什么。想确认一下。
    【解决方案3】:

    它在这里工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 2011-03-13
      相关资源
      最近更新 更多