2013-08-19 5 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. Я использовал парсер Java org.json ниже.

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

Поскольку JSON возвращается внутри XML, вам необходимо: 1) использовать синтаксический анализатор XML для получения содержимого тега <string>. После этого вы можете передать его в парсер JSON.

Надежда, что помогает!

+0

Также обратите внимание, что есть много парсеров XML/JSON, доступных для использования с Android. Вам просто нужно убедиться, что у вас есть лицензия, совместимая с вашим проектом. – Jrop

0

Вам нужно сделать следующее:

  1. Разбирает ответ с использованием XML-анализатора. Вы можете использовать фреймворк Simple XML.

  2. Теперь разобрать содержимое значения тега строки, которая является содержание JSON с помощью Google JSON парсер, GOSN

Смежные вопросы