首页 > 解决方案 > 如何在对象数组中取消转义 json.stringify 输出

问题描述

当我通过 fetch 发布 json.stringify 时,我得到了一个不好的响应,问题出在 json.stringify 产生的转义引号中。当我手动删除它们时它可以工作,但我需要自动完成。

var order = {
  "from_country": "US",
  "line_items": [
  {
  "quantity": 1,
  "unit_price": 19.95
  }
  ],
  "to_country": "US"
};

var body = JSON.stringify(order);

var body 将显示为:

{"from_country":"US","line_items":"[{\"quantity\": 1, \"unit_price\": 19.95}]","to_country":"US"}

我希望它显示为:

{"from_country":"US","line_items":"[{"quantity": 1, "unit_price": 19.95}]","to_country":"US"}

标签: javascriptjsonobjectescapingstringify

解决方案


问题是我的文件包含原型库。

我修复了冲突,同时通过添加此代码仍然保持原型的功能(我认为) -

JSON = JSON || {};
JSON.stringify = function(value) { return Object.toJSON(value); };
JSON.parse = JSON.parse || function(jsonsring) { return jsonsring.evalJSON(true); };

我首先偶然发现这是这里的问题:https://stackoverflow.com/a/20331694/8326722 这导致我访问https://stackoverflow.com/a/1327371/8326722然后我将评论中的位添加到让它与对象一起工作。

如果有人可以解释我使用的代码是如何工作的,那就太好了。


推荐阅读