【问题标题】:JSON function doesn't parse for multiple JSON dataJSON 函数不解析多个 JSON 数据
【发布时间】:2015-03-05 07:25:31
【问题描述】:

我有一个包含这些 json 数据的页面:

{
   "time": "07:08:27 AM",
   "milliseconds_since_epoch": 1425539307783,
   "date": "03-05-2015"
},
{
   "time": "07:08:27 AM",
   "milliseconds_since_epoch": 1425539307783,
   "date": "03-05-2014"
},

这是我用来解析数据的代码:

 // 1
    let urlAsString = "http://192.168.1.35/ios"
    let url = NSURL(string: urlAsString)!
    let urlSession = NSURLSession.sharedSession()

    //2
    let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in
        if (error != nil) {
            println(error.localizedDescription)
        }
        var err: NSError?

        // 3
        if var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? NSDictionary {
        if (err != nil) {
            println("JSON Error \(err!.localizedDescription)")
        }

        // 4
        let jsonDate: String! = jsonResult["date"] as NSString
        let jsonTime: String! = jsonResult["time"] as NSString

        dispatch_async(dispatch_get_main_queue(), {
                    println(jsonDate)
        })
        }
    })
    // 5
    jsonQuery.resume()

问题是它只有在json数据是这样的情况下才有效:

{
   "time": "07:08:27 AM",
   "milliseconds_since_epoch": 1425539307783,
   "date": "03-05-2015"
},

对于多个 json 数据,它停止工作。出了什么问题?

谢谢

【问题讨论】:

  • 您可能在 json 周围缺少一个数组包装器。试试[{...},{...}] 而不是{...},{...}。
  • @Alan 我试过 [{...},{...}] 但即使使用单个 json 数据它也停止工作。

标签: ios json swift


【解决方案1】:

考虑验证您的 JSON here。

{
   "time": "07:08:27 AM",
   "milliseconds_since_epoch": 1425539307783,
   "date": "03-05-2015"
}

是一个有效的 JSON。

同时

{
    "time": "07:08:27 AM",
    "milliseconds_since_epoch": 1425539307783,
    "date": "03-05-2015"
},
{
    "time": "07:08:27 AM",
    "milliseconds_since_epoch": 1425539307783,
    "date": "03-05-2014"
}

不是。

编辑:

JSON 数组写在方括号内。你的 JSON 应该是:

[
    {
        "time": "07:08:27 AM",
        "milliseconds_since_epoch": 1425539307783,
        "date": "03-05-2015"
    },
    {
        "time": "07:08:27 AM",
        "milliseconds_since_epoch": 1425539307783,
        "date": "03-05-2014"
    }
]

您可以参考here和here了解更多详情。

【讨论】:

  • 谢谢,但是我应该如何写正确的呢?
  • ,谢谢,我试过你的答案,但代码没有返回任何东西。
  • 你能帮我解决这个问题吗?我尝试了你对 json 数据的回答,但没有任何返回。问题是什么?
  • 希望可以,但我从未使用过 Swift。你可能想检查这个link。祝你好运:)
猜你喜欢
  • 1970-01-01
  • 2019-06-06
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多