【问题标题】:How to parse a response which can be text or JSON or XML如何解析可以是文本或 JSON 或 XML 的响应
【发布时间】:2011-11-23 14:45:35
【问题描述】:

我正在尝试连接到一个网站。验证成功后,我得到以下响应:

{"code": "OK", 
 "data": {"session_id": "apimanager@taurusseo.com:EdiPNoBS2iYxOsAF9e2ceMbk"}, 
 "user": "apimanager@taurusseo.com"}

解析上面给出的(纯文本)响应的快速简便的方法是什么?

另外,如果响应是 JSON 对象,那么我如何解析响应,最好使用 GSON 库?我只想使用 Google App Engine for Java 支持的库,而 GSON 就是其中之一。

最后,如果与上述类似的响应是 XML 响应,那么我是否必须对类似于上述响应的结构进行建模?同样,是否有一种快速简便的方法来获取响应并通过它进行解析,最好使用 XML RPC 客户端?同样,我只想使用 Google App Engine for Java 支持的库。 XML RPC 客户端只是一个建议,如果您能提出更好的建议,请提出。

【问题讨论】:

  • 我很困惑——你想把一个json对象转换成一个字符串,然后解析那个字符串?
  • @MattFenwick-我只想正确解析响应,响应可以是纯文本/json/xml——我建议将 json 转换为字符串然后解析该字符串,是其中之一解析 json 响应的可能方法...对不起,如果这让您感到困惑.. 我正在适当地编辑问题以删除该建议...
  • 响应中的内容类型标头应该对您有所帮助

标签: java xml json


【解决方案1】:

我很困惑为什么您会针对同一请求返回不同数据类型的响应。但是,您应该能够检查响应的 Content-Type 标头,以确定您是否应该将其解析为 JSON 或 XML。正如您已经提到的,您可以使用诸如 Gson 之类的库将响应作为 JSON 来处理,或者使用内置 XML API(例如 JAXP)之一来将响应作为 XML 来处理。

【讨论】:

  • @ziesemer- 我只会为我目前正在处理的代码获取纯文本响应,但是我将来也必须使用 XML 和 JSON 响应,因此我询问了同一问题中的所有 3 种类型...
  • 对于您提出的每个请求,您几乎都需要有一个“合同”,让您知道期望返回的数据类型。即使数据类型(文本、JSON 或 XML)发生变化,也不能保证即使标准化为相同的数据类型,每个返回的信息也会相同(不同的模式等)。差不多了,我认为您需要根据请求进行设计。
  • @ziesemer- 好的,谢谢...目前我将上述响应作为纯文本响应...您能否建议我从我的示例响应中提取各种值的方法上面给出的?这是纯文本回复...谢谢...
  • 没有看到您的代码,听起来您收到的是纯文本响应(甚至可能错误地将 Content-Type 设置为“text/plain”) - 但它显然是 JSON。使用 GSON 或其他类似库将其解析为 Java 对象树格式,您可以更轻松地使用。
猜你喜欢
  • 1970-01-01
  • 2014-07-20
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多