javascript - 替换 javascript 中的键 JSON

标签 javascript json

假设我有一个像这样的 JSON 对象

var myjson = {
   "com.mycompany.top.Element" : {
      "com.mycompany.top.count" : 10,
      "com.mycompany.top.size" : 0
      ....
   }
};

我想用冒号替换键中的点/句点,这样 JSON 就变成了:

var myjson = {
   "com:mycompany:top:Element" : {
      "com:mycompany:top:count" : 10,
      "com:mycompany:top:size" : 0
      ....
   }
};

Doublos Crockford 的 JSON2 只是替换值而不是键。想知道是否还有其他人编写了正则表达式或解析器来替换构成 key 的文本?

最佳答案

你可以使用这个递归函数:

function rewriteProperties(obj) {
    if (typeof obj !== "object") return obj;
    for (var prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            obj[prop.replace(/\./g, ":")] = rewriteProperties(obj[prop]);
            if (prop.indexOf(".") > -1) {
                delete obj[prop];
            }
        }
    }
    return obj;
}

关于javascript - 替换 javascript 中的键 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433402/

相关文章:

javascript - 如何更改 ionic ionic 导航 View

javascript - 我如何告诉 jslint 函数是外部的?

javascript - 将图像和json对象写入剪贴板

javascript - 根据状态更改 JSON HTML 表格单元格颜色

json - 从服务器检索数据

javascript - 钩子(Hook)只能在函数组件体内调用。 (fb.me/react-invalid-hook-call)

javascript - .Net 无法加载 JavaScript

javascript - Greasemonkey Javascript 按键

Java:URL 编码为 JSON/Map&Lists

json - 将 Swagger JSON 转换为 RAML/YAML