NSJSONSerialization выдает мне ошибку «Дубликат ключа» - PullRequest
2 голосов
/ 25 марта 2012

Я запрашиваю ответ JSON от устройства управления домом:

NSData* responseData = [NSData dataWithContentsOfURL:url];

Данные JSON в responseData полны и действительны. Однако, если я попытаюсь

NSDictionary* dict = [NSJSONSerialization 
                          JSONObjectWithData:responseData                          
                          options:kNilOptions 
                          error:&error];
NSLog("Error: %@", error);

выдает следующую ошибку:

Ошибка: Ошибка Domain = NSCocoaErrorDomain Code = 3840 «Операция не может быть завершена. (Ошибка какао 3840.)» (Дублирующий ключ для объекта вокруг символа 0.) UserInfo = 0x6a8b8e0 {NSDebugDescription = Дублирующий ключ для объекта вокруг символа 0.}

Я искал в Интернете, но пока не нашел ничего полезного.


Редактировать : JSON-ответ довольно длинный, поэтому вместо публикации здесь, пожалуйста, найдите здесь .

Ответы [ 3 ]

0 голосов
/ 13 июня 2012

Я получаю ту же ошибку, только случайно при запуске приложения. Когда NSJSONSerialization терпит неудачу, я проверил объект json, он включается с помощью JSON Viewer. JSON всегда в порядке. Ошибки в NSJSONSerialization, когда он вызывается несколько раз?

0 голосов
/ 01 декабря 2012

Я получил ту же ошибку. Мои данные JSON прошли валидацию JSON на http://jsonformatter.curiousconcept.com/. Тем не менее, я нашел два дублированных ключа в моем JSON (в конце словаря). После того, как я удалил эти ключи, NSJSONSerialization работает гладко.

0 голосов
/ 25 марта 2012

Похоже, что JSON в порядке, вставив его в http://jsonformat.com/ - может быть, вы нашли ошибку Apple? Еще один способ попробовать и проверить это - использовать стороннюю библиотеку iOS и посмотреть, выдает ли она ту же ошибку? Скажем, TouchJSON ?

...