【问题标题】:Android: JOSNObject parsing and simultaneously parsing XML and adding them to the list viewAndroid:JOSNObject解析并同时解析XML并将它们添加到列表视图
【发布时间】:2013-01-22 18:37:41
【问题描述】:

我正在开发一个应用程序,在该应用程序中我从一个 URL 获得 JSON 响应。在那个JSONresponse 中,我必须首先解析JSONObject。然后,我必须解析JSONObject 中的XML 内容。这是我收到的JSON 响应示例:

{
"output": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Results>\n    <Feed prov=\"dmoz\">\n        <ResultSet id=\"webListings\" source=\"DMOZ\">\n            <Listing description=\" - A bike shop in Brisbane. Stocks mountain bikes, road bikes, and BMX bikes.\n                    \" rank=\"1\" siteHost=\"http://www.lifecycle.net.au/\" title=\"Lifecycle Bike Shop\">\n                <ClickUrl type=\"body\">http://www.lifecycle.net.au/</ClickUrl>\n            </Listing>\n            <Listing description=\" - Videos and pictures taken of both sport bikes and dirt bikes.\n                    \" rank=\"2\" siteHost=\"http://roadanddirt.com/\" title=\"Road and Dirt\">\n                <ClickUrl type=\"body\">http://roadanddirt.com/</ClickUrl>\n            </Listing>\n</Results>"
}

这是我用于解析 API 并在 String 中获取 XML 的 Java 代码:

        HttpClient hClient = new DefaultHttpClient();
        HttpGet hGet = new HttpGet("API here");
        ResponseHandler<String> rHandler = new BasicResponseHandler();
        data = hClient.execute(hGet, rHandler);

        JSONObject json = new JSONObject(data);
        // get xml string form jsonObject
        String str_xml = json.getString("output");

我已经解析了JSONObject,现在在String 中获得了一个整体的XML,现在我必须解析整个XML 并修复列表视图中的那些,明智的分类。请帮助我解析XML 并将其修复到列表视图中。我们将不胜感激。

【问题讨论】:

    标签: android json xml-parsing


    【解决方案1】:

    从当前 json 中获取 xml 字符串为:

     JSONObject json = new JSONObject("your json response");
    
     // get xml string form jsonObject
    
     String str_xml=json.getString("output");
    
     // now convert str_xml to xml document for xml parsing 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     DocumentBuilder db = factory.newDocumentBuilder();
     InputSource inStream = new InputSource();
     inStream.setCharacterStream(new StringReader(str_xml));
     Document doc = db.parse(inStream); //<<< get xml Document here
    

    【讨论】:

    • 感谢您的回答。我从 URL 得到这个输出。你能告诉我如何从 URL 中获取它吗?我在这里完全糊涂了。
    • @Anupam : 你说的 是什么意思我从 URL 得到这个输出。你能告诉我如何从 URL 获取这个 吗?如果您是从 URL 获取的,那很好。只需在 JSONObject 方法中传递响应字符串
    • @Anupam : 可以使用HTTP GET Request with HttpClient 从服务器获取数据,Get the content from a HttpResponse 用于读取响应,然后在JSONObject json = new JSONObject("your json response"); 中传递字符串以转换jsonobject
    • @Anupam 你到底想要什么......是否将 json 转换为 xml 或其他任何东西......
    • @ρяσѕρєяK - 为您的帮助投票,我已经编辑了我的问题,请检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多