javascript - 当设置 JSON.stringify 值等于变量时,它会在前面添加 '\' 并在末尾添加\'

标签 javascript json stringify

我确信我错过了一些基本的东西,但我不确定是什么。

这是一些代码:

  var carColor = JSON.stringify(this.car.color);

  document.getElementById('id').innerHTML = carColor; // displays: "blue"
  console.log(carColor); // displays: '\'blue\''

我假设我可以使用函数从该文本中删除斜杠,但是有没有更好的方法来使该变量等于颜色名称?

最佳答案

JSON.stringify() 的行为是标准化的,不会添加您正在观察的斜杠。

但是,console.log() 的精确行为并未跨平台标准化,并且可能会有所不同。拟议的规范正在开发中,但仍处于早期阶段(我仍然不清楚它是否会涵盖此细节)。您不能依赖其输出完全一致。

在某些平台上,字符串在显示之前可能会自动重新转义,以便读者(假设他们是开发人员,而不是会感到困惑的最终用户)清楚任何特殊字符。当字符串已经使用 JSON.stringify() 进行转义时,这种双重转义可能会导致输出中显示反斜杠,正如您所经历的那样。

您可以使用另一种显示文本的方法(例如alert())来验证字符串的实际内容。

关于javascript - 当设置 JSON.stringify 值等于变量时,它会在前面添加 '\' 并在末尾添加\',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024293/

相关文章:

javascript - JSON 解析转义字符串

java - Gson解析json,其中每个字段都是一个对象

javascript - JSON.stringify 忽略一些对象成员

javascript - 将 javascript 字符串化字符串转换为 java 字符串

javascript - 在react中刷新传单 map

javascript - 如何从匿名函数中传递值

javascript - Sails REST API 和 MySQL : TypeError: Model. create(...).meta 不是函数

c# - 如何在 Asp.net Web API 中使用特定的 CultureInfo

javascript - 如何使用 mongoose db.collection.find() 的返回值编写条件逻辑?

c++ - 将变量名称作为字符串传递给具有默认参数的函数