Ошибка синтаксического анализа JSON в ios 7

#ios #objective-c #json

#iOS #objective-c #json

Вопрос:

Я использую NSJSONSerialization для синтаксического анализа ответа JSON из вызова API. Однако я все время получаю сообщение об ошибке

(Ошибка Cocoa 3840.)» (Текст в формате JSON не начинался с массива или объекта, и опция, позволяющая не устанавливать фрагменты.) userInfo=0xde41760 {NSDebugDescription=Текст в формате JSON не начинался с массива или объекта, и опция, позволяющая не устанавливать фрагменты. }

Это то, что я использую для синтаксического анализа JSON на стороне iOS

 NSArray * myArray = [NSJSONSerialization JSONObjectWithData:data
                                                options:kNilOptions
                                                  error:amp;error2];
  

Это мой ответ JSON, который я получаю от вызова API

 [
{
    "23456": {
        "status": 0,
        "type": "web/http-server",
        "link": "https://app.te345.com/web/http-server?testId=23456",
        "name": "Server A""
    }
 }
 ]
  

Я проверил JSON, он показывает действительный JSON.

Если я изменил параметры NSJSONSerializer , я получаю

 Invalid value around character 1
  

Я искал решения в Google, но не очень помог, любые данные по этому вопросу окажут большую помощь, так как я поражен этим уже довольно долго.

Комментарии:

1. В JSON в вашем вопросе отсутствует } перед ] . Это ошибка вставки или это действительно то, что вы получили от сервера?

2. Отсутствует «,» после ` «имя»: «Сервер A «»`, отсутствует «}» и т.д.. Ваш JSON недействителен или, по крайней мере, не тот, который вы вставляете. Проверено на: jsonlint.com

3. @Larme нет необходимости иметь там лишние «,». @Paulw11 верен, } отсутствует только.

4. Это просто ошибка вставки, извините за то, что я отредактировал вопрос

5. Из вставленного файла видно, что первым символом является новая строка — 0x0a. Вам нужно исправить код вашего сервера, чтобы это не отправлялось