将JSON字典值存储到变量中

时间:2016-06-11 11:51:19

标签: php json swift dictionary

使用PHP文件,我以下列格式回显MySQL数据库中的数据:[{"longitude":"-122.031","latitude":"37.3323”}]

在我的Swift文件中,我使用NSJSONSerialization.JSONObjectWithData()创建一个类似于以下内容的JSON字典

(

    {

        latitude = "37.3323";

        longitude = "-122.031";

    }

)

如果我想在变量中存储单个字典值,我相信以下Swift代码片段可以正常工作

class Location: NSObject {
    var latitude: String?
    var longitude: String?
}

var locations = [Location]()

if let locationDictionary = jsonDictionary["coordinates"] as? [String: AnyObject] {
        let location = Location()

        location.setValuesForKeysWithDictionary(locationDictionary)

        print(location.latitude, location.longitude)
}

我遇到的唯一问题是我需要我的JSON字典看起来像

(

    coordinates =  {

        latitude = "37.3323";

        longitude = "-122.031";

    }

)

但我不知道要采取什么措施来实现这一目标。

1 个答案:

答案 0 :(得分:1)

你必须像这样制作你的JSON:

  

[{"坐标" {"经度":" -122.031""纬度":" 37.3323& #34;}}]

这是一个字典数组,其中每个字典包含另一个字典。

以下是适用于新格式的代码:

if let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []), // your source may differ, I'm just using this line for my example
    content = json as? [[String:AnyObject]] { // the array of dictionaries
    for item in content {
        if let locationDictionary = item["coordinates"] as? [String: AnyObject] { // the dictionary inside the dictionary
            let location = Location()
            location.setValuesForKeysWithDictionary(locationDictionary)
            print(location.latitude, location.longitude)
        }
    }
}