Почему этот JSON не работает только в iPhone? - PullRequest
2 голосов
/ 15 марта 2010

Я использую JSON-фреймворк из http://code.google.com/p/json-framework. JSON ниже завершается с этой ошибкой:

-JSONValue failed. Error trace is: (
Error Domain=org.brautaset.JSON.ErrorDomain Code=5 UserInfo=0x124a20 "Unescaped control character '0xd'",
Error Domain=org.brautaset.JSON.ErrorDomain Code=3 UserInfo=0x11bc20 "Object value expected for key: Phone",
Error Domain=org.brautaset.JSON.ErrorDomain Code=3 UserInfo=0x1ac6e0 "Expected value while parsing array"

)

JSON анализируется:

[
    {
    "id" :"2422",
    "name" :"BusinessA",
    "address" :"7100 U.S. 50",
    "lat" :"38.342945",
    "lng" :"-90.390701",
    "CityId" :"11",
    "StateId" :"38",
    "CategoryId" :"1",
    "Phone" :"(200) 200-2000",
    "zip" :"00010"
    }
]

Я думаю, 0xd представляет карету. Когда я помещаю вышеупомянутый JSON в TextWrangler, я не вижу никаких возвратов каретки. Я получил JSON, выполнив «po myjson» в отладчике. Он проходит этот валидатор: http://json.parser.online.fr/. Кто-нибудь может увидеть, в чем может быть проблема?

1 Ответ

1 голос
/ 15 марта 2010

Возможно, вы получаете неверные данные из веб-службы или в непредвиденной кодировке. Использование po myjson (или NSLog()), а затем вставка при копировании приведет к тому, что любые непечатаемые символы будут пропущены, поэтому даже если у вас есть случайный 0xd, веб-валидатор его не увидит.

Вы должны попробовать что-то вроде [myjson rangeOfString:@"\15"], чтобы проверить 0xd (восьмеричное 15 равно шестнадцатеричному 0xd).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...