2015-11-06 5 views
1

Я просто хотел узнать, как разобрать следующий ответ сервера. Я просто хотел выйти из json из xml. Потому что я знаю, как разбирать ответ json. Итак, кто-нибудь, пожалуйста, назовите меня, как я могу это получить.Как разобрать упаковку Xml json

Я смотрел ссылку this для анализа XML, но я не знаю, как конкретно разобрать этот (лежащий в основе данный отклик). Отклик выглядит следующим образом

<string xmlns="http://tempuri.org/"> 
[{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"3"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"4"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"5"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_6[email protected]","ImageID":"6"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"7"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"8"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"9"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"10"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"11"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"[email protected]","ImageID":"12"}] 
</string> 

Вы можете видеть, что его в

<string xmlns="http://tempuri.org/"> 

Я просто хотел бы знать, как разобрать этот тип respne остальную часть ответа whcih является Json я могу сделать синтаксический от json. пожалуйста, только помогите мне, как это сделать

+0

Посмотрите на это [ответ] (HTTP : //stackoverflow.com/a/1823328/5333674) – yvzzztrk

+0

разве нет ничего проще и проще? На самом деле я новичок, и я действительно не понимаю, что происходит в вашей прикрепленной ссылке, –

+0

разве какой-либо способ удалить начальный тег начала xml и положить конец тега xml и получить только json? –

ответ

2

Это должно работать, я не проверял еще

import android.util.Xml; 

import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserException; 

import java.io.IOException; 
import java.io.InputStream; 

public class StringXmlParser { 
    // your xml doesn't have any name spacing so make it null. 
    private static final String ns = null; 

    public String parse(InputStream in) throws XmlPullParserException, IOException { 
     try { 
      XmlPullParser parser = Xml.newPullParser(); 
      parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); 
      parser.setInput(in,null); 
      parser.nextTag(); 
      return readString(parser); 
     } finally { 
      in.close(); 
     } 
    } 

    private String readString(XmlPullParser parser) throws XmlPullParserException, IOException { 
     parser.require(XmlPullParser.START_TAG, ns, "string"); 
     String jsonString = readText(parser); 
     parser.require(XmlPullParser.END_TAG, ns, "string"); 
     return jsonString; 
    } 

    private String readText(XmlPullParser parser) throws IOException, XmlPullParserException { 
     String result = ""; 
     if (parser.next() == XmlPullParser.TEXT) { 
      result = parser.getText(); 
      parser.nextTag(); 
     } 
     return result; 
    } 
} 

И это, как вы используете его

StringXmlParser xmlParser = new StringXmlParser(); 
String jsonString; 
try { 
    // You need to get the input stream for the xml. 
    jsonString = xmlParser.parse(inputStream); 
} finally { 
    if(inputStream != null) { 
     inputStream.close(); 
    } 
} 
+0

Позвольте мне попробовать ............ –

+0

, где он возвращает строку после разбора xml? –

+0

функция parse возвращает вашу строку, переменная 'jsonString' во второй части кода содержит ваш json, в общем случае функция синтаксического анализа должна возвращать все, что находится внутри корневого элемента xml в java-объекте, поскольку предмет внутри вашего корня element - строка json, которая возвращает строку – Bhargav

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