2012-08-31 115 views
0

这是我的PHP页面中的json。这是一本词典的Arrary还是一本字典,里面有钥匙和字典?我认为这是第二种选择,但我不确定,因为我遇到了相互冲突的选择。一旦它显示在xcode调试器中,结构也会改变吗?Arrary的字典或词典与数组?

{ 
    "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 
      } 
     ] 
    } 

回答

2

看看这里:http://www.json.org/

基本上你有一本字典slots这里面有多个对象。键看起来像是这样的东西2012-08-31 00:00:00 America/Los_Angeles。这些键包含字典数组。

+0

谢谢,这更有意义。 – TIDev

0

[]周围的字典似乎表明这是字典的数组。

或者说,内的Dictionary内的Array。第一段只涉及最内层的结构。

1

你可以做的最好的事情就是尝试一下!你会比在这里要求更少的时间! 总之有:

- 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"]; 
+0

键是一个字典数组,所以你的代码将无法工作。 – TIDev

0

你可能会发现,在这里使用NSLog的调试。

假设你想知道你的类是NSArray,Dictionary还是其他类。一旦你传递了JSON数据。要查看您回来的内容,只需注销即可。

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

这会告诉你你的json数据是什么类。

你也可以用同样的方法来acertain如果下一个项目是一个字典或类似这样的

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

一个数组,但单纯从观察,我会说你有字典

数组的词典的词典
+0

正确,插槽是字典,键是NSArray,现在我必须进入每一天dictionary- objectAtIndex:我说未声明的变量 – TIDev

0

这是我做到的。

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"]); 
    } 
    }