当前位置: 首页 > 知识库问答 >
问题:

解析Jax-ws Restful响应的有效方法

史飞尘
2023-03-14

我需要解析jax-ws-rest响应,我尝试了以下两种解析响应的方法。两者都很好。但我需要知道最有效的实施方式。请告诉我你的看法。

    < li >使用getEntity对象并获取响应作为输入流。 < li >使用Jackson object mapper read value()-将inputstream转换为java对象。 < li >使用嵌套java类的getters和setters获取响应对象的成员值。
  • 使用getEntity Object并将响应作为输入流并将输入流转换为字符串。
  • 使用Google Json API,将字符串转换为json对象。
  • 使用Json解析器并获取嵌套对象成员值。

共有2个答案

闻法
2023-03-14

也许不是这个问题的一般答案,而是您在“第一种方法”下描述的另一种变体。我会从一个通用的数据结构开始,并且只会在必要时引入一个额外的 bean。我不会使用字符串来传递结构化数据。

使用jackson将JSON响应转换为Map

优势:

    < li >您不需要实现专门的bean类。随着时间的推移,即使是非常简单的bean也会变得不方便(如果格式改变或新的嵌套结构被添加到json响应中,等等)。).它还在你的代码中引入了某种隐喻,这有时会有所帮助,但也会产生误导。 < li>地图

不足之处

  • 数据封装。映射是输入数据的非常接近的表示,因此提供的抽象级别与bean不同

和斌
2023-03-14

我认为第一种方法更好,原因有二:

  1. 您不会经历将响应有效负载读取到字符串中的中间过程
  2. 在 Jackson 反序列化期间调用的 setter 方法可能会对输入执行验证并引发相应的异常,因此在反序列化期间执行验证。
 类似资料:
  • 我在Android应用程序中使用Mapbox,需要在地图上显示从A点到B点的方向。 我知道Mapbox提供的方向应用编程接口。但是我不能在我的应用程序中使用它,因为包括“com.mapbox.mapboxsdk: mapbox-Android-方向:1.0.0@aar”它在gradle文件中与我的应用程序中的另一个依赖项冲突(不同版本的改造)。 所以我不得不使用API方法。我发出一个url GET

  • 问题内容: 我使用kso​​ap2 lib从android客户端与SOAP Web服务进行通信。ksoap团队做的很棒,但是问题是,没有一个很好的例子说明如何在不同方面正确使用它。例如我得到以下数据的肥皂响应: 它是一个复杂的对象,或者是StatusSetting对象的集合。当我尝试获取SoapObject的属性时,只有1个属性,其中所有数据均为字符串。它也不能解析为json。令人难以置信的是,没

  • 问题内容: 我使用以下函数通过jQuery AJAX发布表单: 它发布正常,但我无法解析响应,它记录到控制台,如下所示 我相信这是我正在寻找的回应。 但是,当我尝试执行响应对象的任何其他成员时,它就是。 任何建议表示赞赏。 问题答案: 呼唤 应该可以访问所需的数据。 现在应该显示“ 1”

  • 我使用两个解析服务器,一个用于主数据库,一个用于liveQuery。我还通过AWS ElastiCache设置了redis。问题是当我在客户端(iOS)中使用实时查询时,没有显示任何事件。代码对任何更改都没有响应。这里会有什么问题? 一个问题:来自AWS Elasticache的redisURL是这样的:(这会导致服务器启动错误)appname.jajj2i.0001.use1.cache.ama

  • 问题内容: 我无法使用Java(使用Bonita Open Solution BPM)解析SOAP响应。我有以下SOAP响应(在IBM Content Manager中搜索文档; SOAP响应返回1个匹配的文档) 我想获取文件名( ICCFileName =“ Golem_Artikel.txt” )和此文件的网址(< cm:URL value =“ http://cmwin01.ebusines

  • 问题内容: 我正在用Volley发送JSONArray GET请求,并且它返回指定的JSON数组。这是我的要求: 如您所见,我目前正在注销响应。我想解析数组,并在列表视图中显示结果。这方面的文档并不出色,就Android开发人员而言,我还是很环保的。从Volley解析JSON数组并将结果显示在列表视图中的正确方法是什么?我已经聚集了我应该使用,但是不确定如何实现。 问题答案: 我建议坚持使用GSO