首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何快速解析复杂的json?

如何快速解析复杂的json?
EN

Stack Overflow用户
提问于 2014-07-29 03:10:46
回答 1查看 616关注 0票数 0

下面是我解析JSON的方法

代码语言:javascript
复制
var apiUrl = NSURL(string: "http://127.0.0.1/api.php")
var apiData = NSData.dataWithContentsOfURL(apiUrl, options: NSDataReadingOptions.DataReadingUncached, error: nil)

var apiJson = NSJSONSerialization.JSONObjectWithData(apiData, options: NSJSONReadingOptions.AllowFragments, error: nil)

http://127.0.0.1/api.php url返回数据。

代码语言:javascript
复制
{
    "tit":"服务器",
    "loc":[
        {
            "_name":"北京",
            "evn":"funckEvent:"
        },{
            "_name":"英国",
            "evn":"funckEvent:"
        },{
            "_name":"日本",
            "evn":"funckEvent:"
        },{
            "_name":"发过",
            "evn":"funckEvent:"
        },{
            "_name":"中国",
            "evn":"funckEvent:"
        }
    ]
}

如何循环json数组?我想循环打印括号{"_name":"中国","evn":"funckEvent:"}的内容。

var loc = apiJson.objectForKey("loc")

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-29 03:29:54

该代码对我来说非常好(运行一个在‘json.html’处提供确切JSON的JSON服务器;但是,在我指定特定端口(在我的例子中是NSURL(string: "http://127.0.0.1:8000/json.html"))之前,它无法打印。您是否尝试过显式地指定端口?

此外,通过声明一个dataWithContentsofURL变量并将其传入,实际捕获NSError返回的错误可能具有启发意义,如下所示:

代码语言:javascript
复制
var error: NSError?
var apiData = NSData.dataWithContentsOfURL(apiUrl, options: NSDataReadingOptions.DataReadingUncached, error: &error)

要在这里循环一个元素,您需要将它转换为一个数组:

代码语言:javascript
复制
var loc = apiJson.objectForKey("loc") as [AnyObject]
for i in loc {
    println(i["_name"])
}

这将打印:

代码语言:javascript
复制
北京
英国
日本
发过
中国
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25007687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档