在JSON iOS中获取值
我有以下json数据:在JSON iOS中获取值,ios,objective-c,json,Ios,Objective C,Json,我有以下json数据: { "aviao": [ { "ID": "1", "NOME": "ART580", "LOGO": null, "NOMECOMPAINHA": "TACV", "CAPACIDADE": "250", "DATE_LOG": "2013-12-10 17:02:34", "vooses": [ { "ID": "1", "CODIGO": "V534PS", "ID_ROTA": "1",
{
"aviao": [
{
"ID": "1",
"NOME": "ART580",
"LOGO": null,
"NOMECOMPAINHA": "TACV",
"CAPACIDADE": "250",
"DATE_LOG": "2013-12-10 17:02:34",
"vooses": [
{
"ID": "1",
"CODIGO": "V534PS",
"ID_ROTA": "1",
"ID_AVIAO": "1",
"AEROPORTOPARTIDA": "1",
"AEROPORTOCHEGADA": "2",
"DATAPARTIDA": "2013-08-08",
"DATACHEGADA": "2013-08-09",
"HORAPARTIDA": "23:45:00",
"HORACHEGADA": "02:20:00",
"TIPOVOO": "Nacional",
"ESTADO": "0",
"DATE_LOG": "2013-12-10 17:02:47"
},
{
在vooses属性中,我有其他属性,但我不知道如何获取它们
有人能帮忙吗?您需要迭代这个数组,并自己获取每个值
var myArray = yourJSON from "vooses" as NSArray
func myStuff (myCollection) {
for item in myCollection {
ID = myCollection["ID"] as NSString (assuming a String here)
CODIGO = myCollection["CODIGO"] as NSString
...
...
var singleVooses:Object = Object()
singleVooses.ID = ID
singleVooses.CODIGO = CODIGO
...
...
myObjects.append(singleVooses)
}
在任何需要的地方调用此方法,然后可以使用MyObject数组填充TableView或其他内容请记住以下几点:
NSDictionary *jsonDict; // Your current dict from your json.
NSArray *aviaos = [jsonDict valueForKey:@"aviao"]; // This array has a dictionary. Or maybe more
NSDictionary *dictionary = [aviaos firstObject];
NSArray *vooses = [dictionary valueForKey:@"vooses"];
// Vooses is an array of dictionaries
for (NSDictionary *dict in vooses)
{
// You don`t know keys:first ask for them
NSArray *keysInDictObject = [dict allKeys];
for (NSString *key in keysInDictObject)
{
NSLog(@"Do you want with this key %@",key);
}
}
对象{}等价于NSDictionary
数组[]等价于NSArray
一旦您知道解析任何JSON结构都非常容易
例如:
假设您的json数据包含在NSString originalJsonString中,将其解析为NSArray,如下所示:
// Convert json string to an array
NSData * jsonData = [originalJsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error=nil;
NSArray *parsedJson=nil;
if (jsonData)
{
parsedJson = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
}
if (!error && parsedJson)
{
// Use your new array
}
显示您的相关代码。到目前为止,您尝试了什么?首先访问json.org并学习json语法。学习只需要5-10分钟。然后研究NSDictionary和NSArray的iOS文档。然后找到一些教程或示例并学习它们。然后试着写点东西,如果你写的东西有问题,请给我们回复。JSON之所以困难,是因为人们试图在不费心理解自己在做什么的情况下使用它。这与其说是一个有用的答案,不如说是一个评论。提供更多细节,并展示一些代码,使之成为一个好的答案。问题标记为Objective-C。答案应为Objective-C。非常感谢…正是我所需要的!在这种情况下,它只捕获第一个对象,如果我希望它捕获一个索引i。应该是怎样的??
// Convert json string to an array
NSData * jsonData = [originalJsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error=nil;
NSArray *parsedJson=nil;
if (jsonData)
{
parsedJson = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
}
if (!error && parsedJson)
{
// Use your new array
}