Android 如何解析xml包装json

Android 如何解析xml包装json,android,android-json,Android,Android Json,有谁能告诉我如何解析以下内容吗 <string xmlns="http://tempuri.org/"> [{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_3@2x.png","ImageID":"3"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_4@2x.png","ImageID":"4"},

有谁能告诉我如何解析以下内容吗

    <string xmlns="http://tempuri.org/">
[{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_3@2x.png","ImageID":"3"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_4@2x.png","ImageID":"4"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_5@2x.png","ImageID":"5"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_6@2x.png","ImageID":"6"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_7@2x.png","ImageID":"7"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_8@2x.png","ImageID":"8"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_9@2x.png","ImageID":"9"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_10@2x.png","ImageID":"10"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_11@2x.png","ImageID":"11"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_12@2x.png","ImageID":"12"}]
</string>
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;
}

是正确的做和如何解析的回应,请回答我的源代码

感谢所有回复,并让我了解执行此操作需要哪些步骤。我在问解析xml时如何删除xml标记。很明显,解析xml与json相比有点棘手。是的,从教程中我了解了如何解析xml,但我回答了如何解析这个没有名称空间和方法名称的xml响应

因此,如果有人在同样的情况下,特别是当网页设计师/服务器端程序员把它放在你身上时,我将此作为一个答案

我使用了下面的类来解析没有名称空间的xml,并且r返回了我的字符串。代码如下所示

    <string xmlns="http://tempuri.org/">
[{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_3@2x.png","ImageID":"3"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_4@2x.png","ImageID":"4"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_5@2x.png","ImageID":"5"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_6@2x.png","ImageID":"6"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_7@2x.png","ImageID":"7"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_8@2x.png","ImageID":"8"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_9@2x.png","ImageID":"9"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_10@2x.png","ImageID":"10"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_11@2x.png","ImageID":"11"},{"OSID":"2","PhoneVersion":"IPHONE5","PhoneOS":"IOS","ImageName":"t_12@2x.png","ImageID":"12"}]
</string>
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;
}
}


这就解决了我的问题。我希望如果有人想要同样的解决方案,那么它可能会帮助他。上传答案只是为了帮助纯粹的初学者

显然,首先解析xml,然后是内部json。。。。。。另一方面为什么?为什么?到底为什么服务器端返回这样的东西。。。为什么不是json或xml-不是bothI不知道他们为什么要给我发送这个回复,我是绑定的,所以请你告诉我如何依次解析,解析,以及我是否发送和连接到服务器?最好建议服务器端将此格式更改为json,否则你必须解析xml,然后阅读json并解析它,您可以通过使用模式跳过庞大的编码来解析xml标记