Не в состоянии получить Json - PullRequest
1 голос
/ 06 марта 2011

Я хочу выбрать json для отображения только syn в div.

это как: -

$.getJSON('http://words.bighugelabs.com/api/2/eba286cdc7f3619674544d80ce94cb1b/stack/json', function(data) {

         //parse the response to display in a div


        });

выходной формат.


Разметка JSON по ссылке:

{
    "noun": {
        "syn": [
            "batch",
            "deal",
            "flock",
            "good deal",
            "great deal",
            "hatful",
            "heap",
            "lot",
            "mass",
            "mess",
            "mickle",
            "mint",
            "muckle",
            "peck",
            "pile",
            "plenty",
            "pot",
            "quite a little",
            "raft",
            "sight",
            "slew",
            "spate",
            "tidy sum",
            "wad",
            "push-down list",
            "push-down stack",
            "smokestack",
            "push-down storage",
            "push-down store",
            "agglomerate",
            "chimney",
            "cumulation",
            "cumulus",
            "large indefinite amount",
            "large indefinite quantity",
            "list",
            "listing",
            "memory device",
            "mound",
            "storage device",
            "whole lot",
            "whole slew"
        ]
    },
    "verb": {
        "syn": [
            "pile",
            "heap",
            "arrange",
            "lade",
            "laden",
            "load",
            "load up",
            "set up"
        ],
        "rel": [
            "heap up",
            "pile up",
            "stack away",
            "stack up"
        ]
    }
}

Ответы [ 3 ]

1 голос
/ 06 марта 2011

Хорошо, я вижу ответ JSON с предоставленного вами URL.Вы можете сделать что-то вроде этого (вы можете сделать это более эффективным, используя StringBuilder):

var list;

var syn = data.noun.syn;

for(var i = 0; i < syn.length; i++)
{
    list += syn[i];
}

syn = data.verb.syn;

for(var i = 0; i < syn.length; i++)
{
    list += syn[i];
}

$('#mydiv').append(list);

В будущем, пожалуйста, будьте более конкретны в отношении проблемы, с которой вы сталкиваетесь -

  • Не удалось загрузить JSON?Смотрите ответ @ JAAulde;часть о той же политике происхождения
  • Не удалось проанализировать JSON?Посмотрите мой ответ и посмотрите на JSON.org или, возможно, этот урок .
  • Было ли что-то еще?Пожалуйста, обновите ваш вопрос.
1 голос
/ 06 марта 2011

JSON не загружается из-за единой политики происхождения, просто добавьте ?callback=? в ваш мир, и он будет работать. Обновленный код,

$.getJSON('http://words.bighugelabs.com/api/2/eba286cdc7f3619674544d80ce94cb1b/stack/json?callback=?', function(data) {
    //parse the response to display in a div
    //you can access the JSON object from the data object.
});

Обновление:

И когда вы добавляете ?callback=? к URL-адресу, используемому в $.getJSON, jQuery понимает, что это запрос JSONP, а не запрос XMLHttpRequest для получения JSON. На самом деле параметр обратного вызова может быть чем угодно, но значение должно быть ?, чтобы вызвать запрос JSONP.

При выполнении запроса jQuery заменяет параметр на что-то вроде ?callback=jQuery15107307685413397849_1299439987443, значение будет уникальным при каждом выполнении запроса.

1 голос
/ 06 марта 2011

Вы не упомянули, с какими проблемами вы сталкиваетесь. Если вы используете опубликованный код в домене «words.bighugelabs.com», то внутри функции обратного вызова вы можете просто получить доступ:

data.verb.syn

или любые другие свойства. Если вы не находитесь в этом домене, вы, вероятно, столкнетесь с проблемами, связанными с междоменными ограничениями сценариев. Если это так, вам нужно изучить JSONP (если это поддерживает удаленный сервер) или методологию прокси.

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