json的org.w3c.dom.Node实现

时间:2017-12-18 11:18:50

标签: java json dom

我正在为除XML之外的数据类型(如json或avro)寻找var tagId = req.params.tagid; console.log(tagId); //1234 console.log(req.params.tagid); //1234 的实现。这将允许我重用针对org.w3c.dom.Node编写的功能,例如xpath。

org.w3c.dom.Node

org.w3c.dom.Node document = new JsonDocument(myJsonMessage); XPathFactory xpathFactory = XPathFactory.newInstance(); XPath xpath = xpathFactory.newXPath(); String msg = xpath.evaluate("/document/element", document); 是针对json文档的xpath评估,前提是我为Json实现了msg / Node

2 个答案:

答案 0 :(得分:0)

最简单的解决方案可能是将您的JSON文档转换为XML,然后使用现有功能执行xpath查询。

Convert JSON to XML

答案 1 :(得分:0)

org.w3c.dom.Node是一个接口。我最终为json,avro,bson(mongodb)编写了接口的实现。它工作得很好。通过执行此操作,我们可以对json,avro,bson等使用xpath,xslt。

您唯一需要记住的是某些文档类型比其他文档类型“更丰富”。 xml具有节点的值,而其他大多数格式则没有。

例如:

<MyDocument>
  <MyChild1>Child1Value</MyChild1>
  <MyChild2>Child2Value</MyChild2>
  <MyChild3 attribute1="Child3 attribute1" attribute2="Child3 attribute2"></MyChild3>
</MyDocument>

要在json中表示同一文档,您需要引入一个约定。在下面的示例中,约定是对节点值使用键“ _rootValue”:

  {
    "MyDocument": {
      "MyChild1": {
        "_rootValue": "Child1Value"
      },
      "MyChild2": {
        "_rootValue": "Child2Value"
      },
      "MyChild3": {
        "attribute1": "Child3 attribute1",
        "attribute2": "Child3 attribute2"
      },
    }
  }