【问题标题】:skipping null values when parsing json in android?在android中解析json时跳过空值?
【发布时间】:2012-01-20 02:40:46
【问题描述】:

我正在从 facebook 解析 json 对象。 在我的 facebook json 对象中,键数组“data”中有字符串键。

我的代码如下,

"data": [
  {
     "id": "100001211447563_300696056647440",
     "from": {
        "name": "Seho Lee",
        "id": "100001211447563"
     },
     "story": "Seho Lee is now using Facebook in English (US).",
     "story_tags": {
        "0": [
           {
              "id": 100001211447563,
              "name": "Seho Lee",
              "offset": 0,
              "length": 8
           }
        ]
     },
     "type": "status",
     "created_time": "2012-01-19T09:13:04+0000",
     "updated_time": "2012-01-19T09:13:04+0000",
     "comments": {
        "count": 0
     }
  },
  {
     "id": "100001211447563_298802933503419",
     "from": {
        "name": "Seho Lee",
        "id": "100001211447563"
     },
     "story": "Seho Lee started using Graph API Explorer.",
     "story_tags": {
        "23": [
           {
              "id": 145634995501895,
              "name": "Graph API Explorer",
              "offset": 23,
              "length": 18
           }
        ],
        "0": [
           {
              "id": 100001211447563,
              "name": "Seho Lee",
              "offset": 0,
              "length": 8
           }
        ]
     },
     "picture": "http://photos-a.ak.fbcdn.net/photos-ak-snc1/v43/11/145634995501895/app_1_145634995501895_4870.gif",
     "link": "http://developers.facebook.com/tools/explorer/",
     "caption": "A tool to help you browse objects within the Facebook Graph API, manage permissions, obtain access tokens and generally learn how it all works.",
     "actions": [
        {
           "name": "Comment",
           "link": "http://www.facebook.com/100001211447563/posts/298802933503419"
        },
        {
           "name": "Like",
           "link": "http://www.facebook.com/100001211447563/posts/298802933503419"
        }
     ],
     "type": "link",
     "created_time": "2012-01-16T09:47:57+0000",
     "updated_time": "2012-01-16T09:47:57+0000",
     "comments": {
        "count": 0
     }
  },
  {
     "id": "100001211447563_298789650171414",
     "from": {
        "name": "Seho Lee",
        "id": "100001211447563"
     },
     "story": "Seho Lee likes myFBCovers.com.",
     "story_tags": {
        "15": [
           {
              "id": 160901873998019,
              "name": "myFBCovers.com",
              "offset": 15,
              "length": 14
           }
        ],
        "0": [
           {
              "id": 100001211447563,
              "name": "Seho Lee",
              "offset": 0,
              "length": 8
           }
        ]
     },
     "type": "status",
     "created_time": "2012-01-16T08:57:33+0000",
     "updated_time": "2012-01-16T08:57:33+0000",
     "comments": {
        "count": 0
     }
  }

当我解析这个 json 对象时,字符串键“likes”有时存在,有时在“data”jsonArray 中不存在。因此,当我解析 JsonString“喜欢”时,有时我会得到 JSONException,因为我正在解析空值。有什么方法可以跳过“null” json 值?

请帮我解决这个问题。

【问题讨论】:

  • 简单.....把try catch & catch它。

标签: android facebook json


【解决方案1】:

如果尝试捕获它,将跳过下一个进程。 您可以通过 isNull("name") 方法进行检查。

【讨论】:

    【解决方案2】:

    编辑:这是检查键。因为你提到键有时存在。你是说价值吗?

    使用 JSONObjects 方法 has(key)

    data = (JSONObject) new JSONTokener(jsonObjRecv.toString()).nextValue();
    if data.has("like"){
    ...
    }
    

    使用 isNull("name") 检查值是否为空

    【讨论】:

    • 如何检查dis case data:[{key:value},null,{key:value}]
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2015-08-18
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多