首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改\操作json元素或在json元素中添加命名空间前缀

更改\操作json元素或在json元素中添加命名空间前缀
EN

Stack Overflow用户
提问于 2016-09-06 14:56:47
回答 1查看 50关注 0票数 0

谢谢你的进阶。我需要一些帮助来操作以下内容:

  • 最终,我确实需要最简单的方法从我的代码中更新父json元素(或任何json元素)。有没有一种方法可以让我的var输出并将startNode转换成tns:startNode?

这是我的密码

代码语言:javascript
复制
var vPrefix = "tns";
var vNamespace = "http://somenamespace.com";
var badgerfish = function(text) {
    return {
        "$": text
    };
};
var prime = {};
prime.startNode = {};

prime.startNode['@xmlns'] = {"tns": vNamespace};

prime.startNode.test1 = badgerfish("testValue1");
prime.startNode.test2 = badgerfish("testValue2");
prime.startNode.test3 = {};
prime.startNode.test3.subtest1 = badgerfish("subtestValue1");
var node = JSON.stringify(prime);
session.output.write(node);

其产出如下:

代码语言:javascript
复制
{
  "startNode": {
    "@xmlns": {
      "tns": "http:\/\/somenamespace.com"
    },
    "test1": {
      "$": "testValue1"
    },
    "test2": {
      "$": "testValue2"
    },
    "test3": {
      "subtest1": {
        "$": "subtestValue1"
      }
    }
  }
}

我所要做的就是做到以下几点(区别只是startNode上的tns前缀):

代码语言:javascript
复制
{
  "tns:startNode": {
    "@xmlns": {
      "tns": "http:\/\/somenamespace.com"
    },
    "test1": {
      "$": "testValue1"
    },
    "test2": {
      "$": "testValue2"
    },
    "test3": {
      "subtest1": {
        "$": "subtestValue1"
      }
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-06 15:11:13

总有这样的事情:

prime = JSON.parse( JSON.stringify(prime).replace(/startNode/g, 'tns:startNode') );

这将给出一个有效的JSON对象,但如果您想要输出JSON的字符串表示形式,那么甚至可能不需要parse。我不确定这是否比遍历JSON来更新密钥更具有性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39352120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档