在JSON iOS中获取值

在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",

我有以下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",
      "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
}