访问请求体内的json

时间:2013-08-19 19:07:58

标签: java android json

我正在使用其他人提供给我们的API,并以这种方式返回:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://ywers.com">
[{"Name":"Edward", "LastName":"Jones", "Address":"{accepted}"}
,{"Name":"Carlos",  "LastName":"Ramirez", "Address":"{Rejected}"}]</string>

提取JSON的最佳方法是什么,以及如何将JSON制作成单独的对象,如

{"Name":"Edward", "LastName":"Jones", "Address":"{accepted}"}
and
{"Name":"Carlos",  "LastName":"Ramirez", "Address":"{Rejected}"}

正如您所看到的,其中一个字段返回时带有一个括号。我遇到的另一个问题是,当我打印回复时,我认为括号会作为问号出现。

3 个答案:

答案 0 :(得分:1)

首先,解析XML以将嵌入式JSON作为

String XML = "<Your XML Response>";
XPathExpression xpath = XPathFactory.newInstance()
                         .newXPath().compile("/*[local-name()='string']");
String json = xpath.evaluate(new InputSource(new StringReader(XML)));

然后,使用任何JSON解析器解析JSON。我已经使用了下面的org.json Java解析器。

JSONArray jsonRoot = new JSONArray(json.trim());
System.out.println(jsonRoot.getJSONObject(0).getString("Address")); // {accepted}

答案 1 :(得分:0)

由于JSON是在XML内部返回的,因此您必须1)使用XML解析器来获取<string>标记的内容。完成后,您可以2)将其传递给JSON解析器。

希望有所帮助!

答案 2 :(得分:0)

您需要执行以下操作:

  1. 使用XML解析器解析响应。您可以使用Simple XML框架。

  2. 现在使用Google JSON解析器GOSN

  3. 解析字符串标记值的内容,即JSON内容