【问题标题】:How to unescape json.stringify output inside a object array如何在对象数组中取消转义 json.stringify 输出
【发布时间】:2019-08-23 01:59:35
【问题描述】:

当我通过 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"}

【问题讨论】:

  • 在 chrome js 控制台中试过这个,并在那里正确显示:/
  • 同意@Nsevens
  • 我的输出直接来自 chrome 控制台。也许这是我的 JavaScript 被包裹在 PHP 中的问题,谢谢,我会调查一下。
  • 您是否正在递归地对order 进行字符串化?在编写第一个 sn-p 时,order 不会像这样字符串化:order.line_items 是一个数组,但您声称结果是一个字符串。
  • 递归?不明白你的意思。我在控制台中看到了一个字符串。

标签: javascript json object escaping stringify


【解决方案1】:

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

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

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,然后我从评论中添加了该位以使其与对象一起使用。

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

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 2022-01-10
    • 2020-07-19
    • 1970-01-01
    • 2018-09-08
    • 2015-03-31
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多