java - 使用哪些框架来分析 REST 服务的响应?

标签 java xml json frameworks

我正在使用 REST Web 服务来检索一些数据。作为响应,我得到一些长 xml 或其他文件。例如,它的一部分可能如下所示:

<jfs:jauthRevokeTokenUrl
      rdf:resource="https://localhost:9443/jts/jauth-revoke-token" />

  <jfs:jauthCheckAuthUrl
      rdf:resource="https://localhost:9443/jts/jauth-check-auth" />

  <jfs:jauthProxyUrl
      rdf:resource="https://localhost:9443/jts/jauth-proxy" />

  <jfs:jauthSigninUrl
      rdf:resource="https://localhost:9443/jts/jauth-signin" />

如果我现在想要检索节点 jfs:jautSigningURLrdf:resource 值,我可以使用什么 Java 框架来实现此目的?如果响应不是 xml 而是 json 怎么办?那我可以使用什么框架呢?还是我必须自己编写代码?

最佳答案

如果你想避免任何大型框架,你可以看看java中用于解析XML的内置工具

这里是一个示例,假设您有一个 XML 字符串变量

 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

 DocumentBuilder db = documentBuilderFactory.newDocumentBuilder();
 InputStream inputStream = new ByteArrayInputStream(XML.getBytes());
 Document parsed = db.parse(inputStream);

 parsed.getDocumentElement().normalize();
 Node tag = parsed.getElementsByTagName("jfs:jauthSigninUrl").item(0);
 String value = tag.getAttributes().getNamedItem("rdf:resource").getNodeValue();

您可以通过包含 namespace 定义、空检查以及可能使用 XPath 表达式来简化它来进一步完善它,如下所示

 XPath xpath = XPathFactory.newInstance().newXPath();
 String value = xpath.evaluate("//jauthSigninUrl/@resource", parsed); 

参见此处Java XML XPATH

关于java - 使用哪些框架来分析 REST 服务的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718436/

相关文章:

xml - 如何在 Angular 2 中解析 xml

java - 尝试对 Java 8 parallelSetAll() 与 setAll() 进行基准测试

java - 如何根据您在上一个 Activity 中所做的操作在另一个 Activity 上显示对话框

java - 使用 Java 中的 amqp 连接 Windows 服务总线时套接字关闭

java - 在这种情况下(在 Java 中)如何用 foreach 替换 for 循环?

java - 如何使用 BOM 输入流排除 BOM

javascript - 如何通过 InDesign 脚本解析 XML 文件

javascript - (AZURE cosmosDB/mongoDB) 更新数组中对象的特定元素的字段

c# - 在 .Net 中将 Url 编码的表单数据转换为 JSON 有哪些选项

javascript - 如何删除 SAPUI5 应用程序中对 'library-preload.json' 的可选调用?