2013-08-19 125 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

相關問題