在我的应用程序中,我使用 Android 版 facebook sdk 接收来自 Facebook 的通知。但response.toString()
方法返回的数据是json格式的。
我需要知道如何将其转换为简单的人类可读格式,以便我可以使用它们在文本字段中查看?
这是我从图形浏览器中得到的内容。所需的字符串是“title”
{
"id": "10000115768434",
"name": "Nauman Aslam",
"notifications": {
"data": [
{
"id": "notif_10000357346818423_6543370",
"from": {
"name": "Muhammad Asad Iqbal",
"id": "56342467433"
},
"to": {
"name": "Nauman Aslam",
"id": "324545436818423"
},
"created_time": "2014-03-28T20:09:02+0000",
"updated_time": "2014-03-28T20:16:05+0000",
"title": "Muhammad Asad Iqbal and Smat Kazmi also commented on Muhammad Asad Iqbal's photo.",
"link": "http://www.facebook.com/photo.php?fbid=4040070417111&se",
"application": {
"name": "Photos",
"id": "54635732"
},
"unread": 1
},
最佳答案
您需要在线查找 JSONparser 库并使用它们,或者如果您愿意,您可以编写自己的 JSONparser 类并解析 java 对象中的数据(顺便说一句,JSON 响应通常是人类可读的,只是它来了作为一个对象或数组或对象)。 如果您想编写自己的 JSONparser 类,那么应该不难,我们无法建议您从哪里开始,直到您发布 JSONresponse 并且我们看到响应的格式。
我要说的一件事是首先检查 JSON 响应的格式。了解格式非常重要,因为如果 JSONresponse 采用“对象数组的对象”格式,则必须使用“JSONObject --> JSONArray ->> JSONObject”对其进行解码,否则程序将崩溃。 Click here并将您的 json 响应复制粘贴到文本框中,它会显示它的格式。
如果您想从 JSON 解码的基础知识开始 Click here 并在 stackoverflow 上查看我的答案,它非常基本,但如果您才开始处理 JSONresponses,这可能是一个好的开始。
编辑
根据您的 JSONresponse,它从大括号开始,这意味着响应是一个 JSONObject,但我看不到整个 JSONresponse,并且缺少一些括号,因此我的答案可能没有意义,但如果您理解的话,可以按照以下步骤操作
您要做的第一件事是将响应保存在“String”对象中,并创建一个 JSONObject 并通过传递响应来初始化它。那么您希望从中提取“通知”对象,因此您再次创建第二个 JSONObject 该对象只会从字符串中提取“通知”对象
然后您希望提取 JSONArray“数据”,因此您可以从 JSONObject 定义 JSONArray 和 getJSONArray("data")。 再次,您将需要 JSONObject 来仅提取“标题”对象。
总结
Create JSONObject and pass the response String to it
Create second JSONObject from it
Create JSONArray and use getJSONArray("___") method on you JSONObject
and finally create last JSONObject inside a for loop if you have more than one notification
and use getString("title") method on that object
您的 JSON 响应不完整,因此我可能是错的,但您可以尝试一下。
关于android - 从 json 转换 Facebook 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734571/