0

JSONKit で動作するこの単純なテスト スタブさえ取得できないなんて信じられません...

有効な JSON ドキュメントを含む json ファイルと、次の簡単なコードがあります。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSError *err = nil;
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"dk" ofType:@"json"];
    NSData *jsonData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&err];

    NSString *dkk = [[NSString alloc] initWithContentsOfFile:filePath];
    NSLog(@"Found file with contents: \n%@",dkk);

    if(jsonData)
    {
        NSLog(@"Data length is: %d",[jsonData length]);
        id objectReturnedFromJSON = [jsonData objectFromJSONData];
        if(objectReturnedFromJSON)
        {
            if([objectReturnedFromJSON isKindOfClass:[NSDictionary class]])
            {
                NSDictionary * dictionaryFromJSON = (NSDictionary *)objectReturnedFromJSON;
                // ...
            } else {
                NSLog( @"no dictionary from the data returned by the server... check the data to see if it's valid JSON");
            }
        } else {
            NSLog( @"nothing valid returned from the server...");
        }
    } else {
        NSLog( @"no data back from the server");
    }

}

objectFromJSONData の結果は常に null を返すようです。出力を以下に示します。

2013-01-15 00:58:37.187 JSONTest[38110:c07] Found file with contents: 
myObject = {
    "first": "John",
    "last": "Doe",
    "age": 39,
    "sex": "M",
    "salary": 70000,
    "registered": true,
    "favorites": {
        "color": "Blue",
        "sport": "Soccer",
        "food": "Spaghetti"
    } 
}

2013-01-15 00:58:51.818 JSONTest[38110:c07] Data length is: 196
2013-01-15 00:58:54.058 JSONTest[38110:c07] Data length is: (null)
(lldb) 

私は一体何が欠けているのですか?入力 JSON は有効です (NSLog ステートメントで示されています)。

これがばかげている場合は申し訳ありませんが、この小さなテストケースでも時間を無駄にしすぎて、何かが足りないと思いました.

4

1 に答える 1

3

あなたが持っている JSON は無効です。ルート要素myObjectがなく、キーが括弧で囲まれていません。

于 2013-01-15T06:06:25.530 に答える