繁体   English   中英

为JSON字符串创建Java解析器

[英]Creating java parser for json string

我正在尝试将使用Xpath解析XML的Java方法转换为使用JsonPath解析的Java方法,并且在转换Xpath解析器正在执行的操作时遇到问题,因此我可以使用JsonPath复制它。

这是当前解析“字符串主体”的代码。

public static String parseXMLBody(String body, String searchToken) {
    String xPathExpression;
    try {
            // we use xPath to parse the XML formatted response body
        xPathExpression = String.format("//*[1]/*[local-name()='%s']", searchToken);
        XPath xPath = XPathFactory.newInstance().newXPath();
        return (xPath.evaluate(xPathExpression, new InputSource(new StringReader(body))));
    } catch (Exception e) {
            throw new RuntimeException(e); // simple exception handling, please review it
    }
}

谁能帮助将其转换为使用JsonPath或类似方法的方法?

谢谢

我可以为您解释XPath

//*[1]选择文档中的第一个元素节点。 这将是document元素,此处只能是一个,因此有点奇怪。 /*返回相同的节点。

//*[1]/*/*/*返回文档元素的所有元素子节点。

[local-name()='tagname']通过节点的本地名称(没有名称空间前缀的标签名称[local-name()='tagname']过滤节点。

完整表达式//*[1]/*[local-name()='tagname']提取具有提供的标记名的文档元素的所有直接子节点,而忽略名称空间。 可以简化为/*/*[local-name()='tagname']

不了解Json,就没有机会说说JsonPath的外观。 我不希望Json具有根元素,但是我希望项目有所不同,因为在Json中,不能有多个具有相同键的兄弟(在XML中可以有具有相同节点名的多个兄弟)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM