javascript - JSON 字符串化 : Tabs in objects are converted to\t causing issue while upper casing the result

标签 javascript json

我有一个对象,

var o = {
  "comments": "    notes" // it first 4 spaces is actually a tab(\t)
}

当我使用 JSON.stringify(o) 对该对象进行字符串化时,它返回 "{"comments":"\t notes"}"

如果我解析该字符串,它会返回原始对象,即 {"comments": "notes"}

但根据我们的要求,我们需要将 JSON.stringify() 结果大写。如果我们执行 JSON.stringify(o).toUpperCase(),它会为我们提供 "{"COMMENTS":"\T NOTES"}"

有什么方法可以保留 "\t" 或字符串化结果中的空格吗?

最佳答案

您可以尝试使用 for in 循环在键上迭代它,如下所示

var b={};
for(let item in o){
  b[item.toUpperCase()]=o[item].toUpperCase();
  console.log(b);
}

如果您还想转换嵌套对象,请使用以下函数,它会正常工作。

function changeToUpperCase(obj) {
  var newobj = {};
  for (let item in obj) {
    if (typeof obj[item] == 'object') {
        newobj[item.toUpperCase()] = changeToUpperCase(obj[item]);
    } else {
        newobj[item.toUpperCase()] = obj[item].toUpperCase();
    }
  }
  return newobj
}

关于javascript - JSON 字符串化 : Tabs in objects are converted to\t causing issue while upper casing the result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57501455/

相关文章:

ios - wsdl2swift 结果只得到 nil,连接结果正常

javascript - 使用 Nodejs 获取 json 列表中的第一项

json - 如何使用 GWT 解析 ASP.NET JSON 日期格式

javascript - 如何在 switch 语句中使用通配符

javascript - 状态变异中的 React 数组

javascript - 具有多种功能的backbone js模型解析函数

javascript - JavaScript 中 JSON.stringify() 的替代方案

java - Jackson 解析器到 Java 对象

javascript - 在 JavaScript 中将 src 属性更改为 data-src

javascript - 在 Three.js 中加载 JSON 对象后对其进行操作