Java/Android如何从html响应中获取JSON?

Java/Android如何从html响应中获取JSON?,java,android,json,html-parsing,jsoup,Java,Android,Json,Html Parsing,Jsoup,我从HttpGet得到一个html响应,响应如下: <div class="noti-contents"> <button class="accept-invitation gui-button" data-invite="pi:103158:18:60:114779" data-invite-details='{"f":"103158","p":18,"api":false,"pid":60,"t":114779,"sub":"p10315857a3f8","u":{

我从HttpGet得到一个html响应,响应如下:

<div class="noti-contents">
    <button class="accept-invitation gui-button" data-invite="pi:103158:18:60:114779" data-invite-details='{"f":"103158","p":18,"api":false,"pid":60,"t":114779,"sub":"p10315857a3f8","u":{"id":"103158","name":"xxxxxx","profile_image":"{1}","status":"1"}}'><span>Accept</span></button>
</div>

那么,我应该如何解析这个字符串以获得上面的部分呢?

您可以使用
XML解析器阅读html,并使用
XPath
查询您要查找的值

XPath的

/div/button/@data-invite-details
这里有一篇文章解释了如何在Java/Android中实现这一点:


看看这些文档

您可以使用Jsoup解析html

Document doc = Jsoup.parse("html string");  
Elements elements = doc.select("button");
Log.i("..........",""+elements.attr("data-invite-details"));
日志


我回答这个问题有点晚了,但我有一个极好的解决方案,可以在Android中从html响应中获取仅json的字符串

假设变量输出中有一个字符串

output= Html.fromHtml(output).toString();
output=output.substring(output.indexOf("{"),output.lastIndexOf("}") + 1);
现在输出只包含json

JSONObject jsonObject = new JSONObject(output);

使用jsoup html解析器并获取json@Raghunandan但是我认为jsoup需要页面的url来获取页面的html,这个问题中的html代码是作为响应发送给我的,我没有这个html的url,我应该如何使用jsoup来解析这个?你可以解析字符串响应你得到的响应是什么?哦!!!!谢谢!我从未使用过Jsoup,所以我不知道它是如何工作的。谢谢你的文件@索兰没有问题,只要使用上面的,它应该可以正常工作
output= Html.fromHtml(output).toString();
output=output.substring(output.indexOf("{"),output.lastIndexOf("}") + 1);
JSONObject jsonObject = new JSONObject(output);