android - 从 json 转换 Facebook 通知

标签 android json facebook-sdk-3.1

在我的应用程序中,我使用 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/

相关文章:

java - 如何获得物理世界的精确高度和宽度(以米为单位)?

android - 从服务到 Activity 的 sendBroadcast() 处出现 NullPointerException

ios - 如何删除我的应用程序存储的有关 Facebook 的所有内容?

Android 使用 Facebook Sdk 3.1 邀请好友加入 App(打开 Play 商店链接)

android - Facebook SDK 3 - session 重新登录问题

android - REQUEST_DENIED 使用 Google Places API 浏览器 key 或应用程序 key ?

java - 日历开始日期早于结束日期的同一天差异

javascript - 从 JSON 中的 symfony 3 应用程序填充谷歌地图

php - 如何使用 AJAX 或 JSON 将数据发送到 PHP 电子邮件脚本

json - Grails 3.1 json 渲染