Разбор Сенчи JSON - сломанный JSON? - PullRequest
0 голосов
/ 09 декабря 2011

У меня проблемы с анализом JSON.

Парень, который собрал код сервера, уверяет меня, что все в порядке, но всякий раз, когда я пытаюсь проанализировать JSON через прокси-сервер JSONP в sencha touch, я получаю предупреждение "Ресурс интерпретируется как Другое, но передается с неопределенным типом MIME. ». Это говорит мне о том, что форматирование нарушено в конце API.

Пример обратного вызова: http://api.pickple.com/comment/list?post_key=201108240008&site_key=etnews_20110616&format=json (извините, там есть немного корейского)

и код, который я использую для разбора:

Ext.define('Paythread.model.Comment', {
    extend: 'Ext.data.Model',
    fields: ['user_id', 'total_count'],

    proxy: {
        type: 'jsonp',
        url: 'http://api.pickple.com/comment/list?post_key=201108240008&site_key=etnews_20110616&format=json',
        reader: {
            type: 'json',
            root: 'result' 
        }
    }

});

Я попробовал этот же точный код с файлом JSON на локальной стороне, и все работало нормально, поэтому я на 95% уверен, что проблема заключается либо в том, как я его анализирую, либо в том, что JSON вернул сам себя.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

Попробуйте запустить JSON через форматер / валидатор json, например: http://jsonformatter.curiousconcept.com/ или http://jslint.com/

0 голосов
/ 09 декабря 2011

Ссылка, которую вы разместили, не содержит действительный JSON.Я бы начал там.

Самое начало JSON:

{
    "status_code": 200,
    list: { {

list должно быть в кавычках, чтобы быть ключом в объекте JSON, а {{не действуетХотите массив объектов?([{ ... }])

Кроме того, многие строки в JSON (комментарии, в основном на корейском языке) содержат символы новой строки.JSON может содержать символы новой строки, но они должны быть экранированы.Это недействительно:

{ "comment": "Hello there
What a nice day" }

Это верно:

{ "comment": "Hello there\nWhat a nice day" }

И последнее:

Я получаю предупреждение "Ресурс интерпретируется как Другое, но передается с помощьюТип MIME не определен. "

Возможно, это связано с тем, что размещенный вами URL-адрес идентифицирует этот ресурс как" text / html "в заголовке Content-Type ответа HTTP.Это определенно , а не HTML, так что это неправильно, и если это JSON (похоже на JSON), то его следует идентифицировать как таковой.(Возможно, именно поэтому вы получаете предупреждение, поскольку это не так.)

...