2013-08-19 86 views
0

我使用别人提供给我们的API,并返回这样说:请求主体内部访问JSON

<?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}"} 

正如你可以看到其中一个字段返回一个括号里面。我遇到的另一个问题是,当我打印回复时,我认为括号是问号。

+0

一个好方法来提取JSON可能是使用XML解析库,因为这是在JSON被包裹英寸 –

+1

为什么会有人这样做?请求你的同事用XML或JSON提供数据。否则你不会得到任何一方的好处。 :) –

+0

这是太错误了:) – waqaslam

回答

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} 
0

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

希望帮助!

+0

还要注意,有很多XML/JSON解析器可用于Android。你只需要确保你使用的那个具有与你的项目兼容的许可证。 – Jrop

0

你需要做以下内容:

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

  2. 现在分析这是使用谷歌JSON解析器JSON内容字符串变量值的内容,GOSN

相关问题