Ios 字典数组还是带数组的字典?

Ios 字典数组还是带数组的字典?,ios,json,nsarray,nsdictionary,nsjsonserialization,Ios,Json,Nsarray,Nsdictionary,Nsjsonserialization,这是我的php页面中的json。这是一系列的字典,还是仅仅是一本有钥匙的字典?我认为这是第二种选择,但我不确定,因为我得到了相互冲突的选择。一旦结构显示在xcode调试器中,它还会改变吗 { "slots": { "2012-08-31 00:00:00 America/Los_Angeles": [ { "isPending": false, "isReservable": true

这是我的php页面中的json。这是一系列的字典,还是仅仅是一本有钥匙的字典?我认为这是第二种选择,但我不确定,因为我得到了相互冲突的选择。一旦结构显示在xcode调试器中,它还会改变吗

{
    "slots": {
        "2012-08-31 00:00:00 America/Los_Angeles": [
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-30 17:00:00 America/Los_Angeles",
                "end": "2012-08-30 17:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-30 17:30:00 America/Los_Angeles",
                "end": "2012-08-30 18:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": false,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-30 18:00:00 America/Los_Angeles",
                "end": "2012-08-31 00:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": false,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 00:00:00 America/Los_Angeles",
                "end": "2012-08-31 08:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 08:00:00 America/Los_Angeles",
                "end": "2012-08-31 08:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 08:30:00 America/Los_Angeles",
                "end": "2012-08-31 09:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 09:00:00 America/Los_Angeles",
                "end": "2012-08-31 09:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 09:30:00 America/Los_Angeles",
                "end": "2012-08-31 10:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": false,
                "isReserved": true,
                "label": "Joe Smith",
                "begin": "2012-08-31 10:00:00 America/Los_Angeles",
                "end": "2012-08-31 12:30:00 America/Los_Angeles",
                "span": 5
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 12:30:00 America/Los_Angeles",
                "end": "2012-08-31 13:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 13:00:00 America/Los_Angeles",
                "end": "2012-08-31 13:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 13:30:00 America/Los_Angeles",
                "end": "2012-08-31 14:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 14:00:00 America/Los_Angeles",
                "end": "2012-08-31 14:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 14:30:00 America/Los_Angeles",
                "end": "2012-08-31 15:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 15:00:00 America/Los_Angeles",
                "end": "2012-08-31 15:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 15:30:00 America/Los_Angeles",
                "end": "2012-08-31 16:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 16:00:00 America/Los_Angeles",
                "end": "2012-08-31 16:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 16:30:00 America/Los_Angeles",
                "end": "2012-08-31 17:00:00 America/Los_Angeles",
                "span": 1
            }
        ],
        "2012-09-01 00:00:00 America/Los_Angeles": [
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 17:00:00 America/Los_Angeles",
                "end": "2012-08-31 17:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 17:30:00 America/Los_Angeles",
                "end": "2012-08-31 18:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": false,
                "isReserved": false,
                "label": " ",
                "begin": "2012-08-31 18:00:00 America/Los_Angeles",
                "end": "2012-09-01 00:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": false,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 00:00:00 America/Los_Angeles",
                "end": "2012-09-01 08:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 08:00:00 America/Los_Angeles",
                "end": "2012-09-01 08:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 08:30:00 America/Los_Angeles",
                "end": "2012-09-01 09:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 09:00:00 America/Los_Angeles",
                "end": "2012-09-01 09:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 09:30:00 America/Los_Angeles",
                "end": "2012-09-01 10:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 10:00:00 America/Los_Angeles",
                "end": "2012-09-01 10:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 10:30:00 America/Los_Angeles",
                "end": "2012-09-01 11:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 11:00:00 America/Los_Angeles",
                "end": "2012-09-01 11:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 11:30:00 America/Los_Angeles",
                "end": "2012-09-01 12:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 12:00:00 America/Los_Angeles",
                "end": "2012-09-01 12:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 12:30:00 America/Los_Angeles",
                "end": "2012-09-01 13:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 13:00:00 America/Los_Angeles",
                "end": "2012-09-01 13:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 13:30:00 America/Los_Angeles",
                "end": "2012-09-01 14:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 14:00:00 America/Los_Angeles",
                "end": "2012-09-01 14:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 14:30:00 America/Los_Angeles",
                "end": "2012-09-01 15:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 15:00:00 America/Los_Angeles",
                "end": "2012-09-01 15:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 15:30:00 America/Los_Angeles",
                "end": "2012-09-01 16:00:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 16:00:00 America/Los_Angeles",
                "end": "2012-09-01 16:30:00 America/Los_Angeles",
                "span": 1
            },
            {
                "isPending": false,
                "isReservable": true,
                "isReserved": false,
                "label": " ",
                "begin": "2012-09-01 16:30:00 America/Los_Angeles",
                "end": "2012-09-01 17:00:00 America/Los_Angeles",
                "span": 1
            }
        ]
    }

字典周围的
[
]
似乎表明这是一系列字典


或者更确切地说,是
字典中的
数组
。第一段只涉及最里面的结构。

字典周围的
[
]
似乎表明这是一系列字典

或者更确切地说,是
字典中的
数组
。第一段仅介绍最里面的结构。

请看这里:

基本上你有一个字典
slot
,里面有多个对象。钥匙看起来是这样的
2012-08-31 00:00:00美国/洛杉矶
。这些键包含字典数组。

请看这里:


基本上你有一个字典
slot
,里面有多个对象。钥匙看起来是这样的
2012-08-31 00:00:00美国/洛杉矶
。这些键包含字典数组。

您能做的最好的事情就是尝试一下!你会比在这里提问浪费更少的时间! 无论如何,你有:

 - dictionary, with a "slot" key that has an associated value:
    - dictionary, with a "2012-08-31 00:00:00 America/Los_Angeles" key that that has an associated value:
       - array, containing objects:
          - dictionary1
          - dictionary2
          - ....
例如,要访问第二个元素的isPending属性:

[[[[dict objectForKey:@"slot"] objectForKey:@"2012-08-31 00:00:00 America/Los_Angeles"] objectAtIndex:1] valueForKey:@"isPending"];

你能做的最好的事情就是尝试一下!你会比在这里提问浪费更少的时间! 无论如何,你有:

 - dictionary, with a "slot" key that has an associated value:
    - dictionary, with a "2012-08-31 00:00:00 America/Los_Angeles" key that that has an associated value:
       - array, containing objects:
          - dictionary1
          - dictionary2
          - ....
例如,要访问第二个元素的isPending属性:

[[[[dict objectForKey:@"slot"] objectForKey:@"2012-08-31 00:00:00 America/Los_Angeles"] objectAtIndex:1] valueForKey:@"isPending"];

您可能会发现在这里使用NSLog进行调试很有用

假设您想知道您的类是NSArray、Dictionary还是其他类。一旦您传递了JSON数据。要想知道你得到了什么,只需注销它

[NSLog(@" JSON data is kind of class %@", [NSStringFromClass([jsonData Class]);
这将告诉您json数据是什么类

如果下一项是字典或类似的数组,也可以使用相同的方法来确定

[NSLog(@" JSON data is kind of class %@",  [NSStringFromClass([[jsonData objectAtIndex:i]Class]);

但纯粹从观察来看,我会说您有一个字典字典数组的字典

您可能会发现在这里使用NSLog进行调试很有用

假设您想知道您的类是NSArray、Dictionary还是其他类。一旦您传递了JSON数据。要想知道你得到了什么,只需注销它

[NSLog(@" JSON data is kind of class %@", [NSStringFromClass([jsonData Class]);
这将告诉您json数据是什么类

如果下一项是字典或类似的数组,也可以使用相同的方法来确定

[NSLog(@" JSON data is kind of class %@",  [NSStringFromClass([[jsonData objectAtIndex:i]Class]);
但纯粹从观察来看,我会说你有一本字典,一系列的字典

for (NSString *slotKey in myslots.allKeys) {
    NSDictionary *slot = [myslots valueForKey:slotKey];
        NSArray *tests = [myslots objectForKey:slotKey];
    for (NSDictionary *myDict in tests){
        NSLog(@"%@", [myDict objectForKey:@"begin"]); 
    }
    }
我是这样做的

for (NSString *slotKey in myslots.allKeys) {
    NSDictionary *slot = [myslots valueForKey:slotKey];
        NSArray *tests = [myslots objectForKey:slotKey];
    for (NSDictionary *myDict in tests){
        NSLog(@"%@", [myDict objectForKey:@"begin"]); 
    }
    }

谢谢,这更有意义。谢谢,这更有意义。正确,插槽是字典,键是NSArray,现在我必须进入每天的字典-objectAtIndex:我说未声明的变量正确,插槽是字典,键是NSArray,现在我必须进入每日字典-objectAtIndex:我说未声明的variablekeys是一个字典数组,所以你的代码不会工作。keys是一个字典数组,所以你的代码不会工作。