Я получаю данные из php-файла в следующем формате:
{"object:value", "object2:value2"...}
{"object:value", "object2:value2"...}
Я знаю, как разобрать это в Swift2, используя следующий код, неоднократно меняя строку separaBy:
if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) {
let strResult = NSString(data: data, encoding: NSUTF8StringEncoding)
}
tareas = strResult!.componentsSeparatedByString(",")
Но я хочу разобрать это легче. Я прочитал другие вопросы и ответы, но формат для анализа был:
[
{"person": {"name":"Dani","age":"24"}},
{"person": {"name":"ray","age":"70"}}
]
И мои данные разные. Как я могу сделать это проще?
Спасибо!
Вы можете прочитать это как массив, как это
Прежде всего вам нужно конвертировать ваши данные в действительный json, как это, а затем получить к нему доступ
var result: NSArray = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray
println("result: \(result)")
Ex.
var str = "[{\"person\": {\"name\":\"Dani\",\"age\":\"24\"}},{\"person\": {\"name\":\"ray\",\"age\":\"70\"}}]"
var data : NSData = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
var result: NSArray = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray
println("Response: \(result)")
println("Oth Object: \(result[0])")
Выход
Response: (
{
person = {
age = 24;
name = Dani;
};
},
{
person = {
age = 70;
name = ray;
};
}
)
Oth Object: {
person = {
age = 24;
name = Dani;
};
}
Я предлагаю вам использовать SwiftyJSON (6 000+ звезд) библиотека, которая преобразует ответ в JSON
объект. Что-то вроде:
if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) {
let json = JSON(data: data!)
}
После этого вы можете легко извлечь любую информацию из JSON
:
for item:JSON in json.arrayValue{
let person = item["person"].dictionaryValue
//...
}