0

これが私のphpページからの私のjsonです。これは辞書の配列ですか、それとも単にキーとそれらのキーの中に辞書がある辞書ですか?2番目のオプションだと思いますが、競合するオプションを取得していたため、わかりません。また、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
            }
        ]
    }
4

5 に答える 5

2

ここを見てください:http ://www.json.org/

slots基本的に、内部に複数のオブジェクトがある辞書があります。キーはこのように見えます2012-08-31 00:00:00 America/Los_Angeles。これらのキーには、辞書の配列が含まれています。

于 2012-08-31T14:20:53.427 に答える
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
          - ....

したがって、たとえば、2番目の要素のisPending属性にアクセスするには、次のようにします。

[[[[dict objectForKey:@"slot"] objectForKey:@"2012-08-31 00:00:00 America/Los_Angeles"] objectAtIndex:1] valueForKey:@"isPending"];
于 2012-08-31T14:22:11.253 に答える
0

[辞書とその]周辺は、それが辞書の配列であることを示唆しているようです。

というか、Array内側のDictionary内側Dictionary。最初の段落では、最も内側の構造のみを取り上げています。

于 2012-08-31T14:20:10.180 に答える
0

ここで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]);

しかし、純粋に観察から、私はあなたが辞書の配列の辞書の辞書を持っていると言うでしょう

于 2012-08-31T14:30:34.843 に答える
-1

これが私がそれをした方法です。

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"]); 
    }
    }
于 2012-08-31T17:13:31.487 に答える