Я получаю данные JSON в ответе с сервера.Но как я могу разобрать эти данные, чтобы показать во всплывающем окне - PullRequest
0 голосов
/ 17 июня 2011

Я получаю данные json как ответ от сервера. Я хочу проанализировать эти данные JSON и встроить все данные во всплывающее окно.

var on_show_info = function() {
                alert("aa");
                request_meta_info = $.ajax({
                url: data + info.id,
                type: 'GET',
                async: false,
                dataType: "jsonp",
                success: data,
                error: error    
        });
    };

var data = function(data, text_status, XMLHttpRequest) {

    alert(data);
    var html = '';
    var info = {};


    here I want that JSON parsing code as I am getting response back from the server in data field. Any help will be appreciated and I want to embed those parse data in to a popup window as shown below by this command `($('#popup-meta .popup-content').html(html);)`


    });

    $('#popup-meta').removeClass('waiting');
    $('#popup-meta .popup-content').html(html);
};

Это ответ, который я получаю с сервера в виде данных JSON только для примера.

jsonp13082({"responseHeader":{"status":0,"Time":3,"params":{"json.wrf":"jsonp13082","wt":"json","q":"8377"}},"response":{"numFound":1,"start":0,"docs":[{"key":"83779616","number":"080","name":"Designated","name":"Non ","number":"27837","date":"2010-08-24T07:00:00Z","name":"Canada","name":"Application","title":"collision detection","date":"2008-03-03T08:00:00Z","id":"414","code":"CA","date":"2009-03-03T08:00:00Z","name":"Michael Henry","mgr_name":"William Henry","id":"79616","name":"oen","claims":"74","date":"2012-03-03T08:00:00Z","claims":"8","url":"","inventors":["D.","rshi","Pa"],"guid":["23","26","25"],"towners":["XYZ"],"inventors":["D","name2","name3"],"owners":["XYZ"]}]}})

Ответы [ 4 ]

1 голос
/ 17 июня 2011
 var dataObj = jQuery.parseJSON( jsonStr );

См. Ссылку для получения дополнительной информации о jQuery (который вы включили) и конвертации jsons в формат данных.

http://api.jquery.com/jQuery.parseJSON/

Как вы используете данные для отображения, зависит от вас, и какие данные вы получите.

Вы можете использовать собственное диалоговое окно jQuery для отображения такого всплывающего окна

диалоговое окно в jQuery

В котором вы можете выполнить цикл for для преобразования каждого параметра в отображение с помощью форматирования HTML (возможно, с использованием таблиц HTML).

function tablefy( object ) {
var retStr = "";
var typeSet = typeof(object);
if( typeSet == 'object' ) {
    retStr += "<table>"
    for( x in object ) {
        retStr += "<tr>";
        retStr += "<td>";
        if( typeof( x ) == "string" ) {
            retStr += x;
        } else {
            retStr += x.toString();
        }
        retStr += "</td><td>";
        retStr += tablefy( object[x] );
        retStr += "</td>"
        retStr += "</tr>"
    }
    retStr += "</table>"
} else {
    //just dumps it raw
    if( typeSet == 'String' ) {
        return object;
    } 

    if( typeSet == 'number' ) {
        return object.toString();
    }

    if( typeSet == 'boolean') {
        if( object == true ) {
            return 'true';
        } else {
            return 'false';
        }
    }

    return 'null';

    }
}
return retStr;
}
0 голосов
/ 17 июня 2011

Таким образом, вы не можете отобразить его, используя окно оповещения, потому что, как только оно попадает в клиент, оно автоматически превращается в объект javascript. Оповещение бесплодно.

Попробуйте вместо

console.log (data)

и посмотрите, что находится в вашем окне консоли (т.е. - f12, chrome - ctrl shift j)

0 голосов
/ 17 июня 2011

Если вы хотите отобразить это просто текст, вам придется конвертировать его. попробуйте использовать http://code.google.com/p/jquery-json/

$. ToJSON (данные)

0 голосов
/ 17 июня 2011

Я думаю, что если вы обновите тип данных вашего запроса с jsonp на json, то объект данных в обработчике ответа уже должен быть проанализирован, поэтому

alert(data.name);

должно работать (если возвращаемый объект соответствует вашему примеру выше)

РЕДАКТИРОВАТЬ : этот ответ основан на указании OP, что ответом был json, но ответом представляется jsonp

...