无法使用从我的Json文件发回的数据到网页

时间:2011-04-08 12:47:17

标签: jquery json

我有一个json文件,我可以从中返回结果。我遇到的问题是我无法将结果返回到页面上(可以这么说)。我认为这与我无法控制的Json的格式有关,看起来像这样:

[
[
    {
        "Key": "AddressLine1",
        "Value": "Acacia Avenue"
    },
    {
        "Key": "AddressLine2",
        "Value": "secondlineofaddress"
    },
    {
        "Key": "City",
        "Value": "someCity"
    },
    {
        "Key": "HouseNameOrNumber",
        "Value": "2"
    },
    {
        "Key": "Postcode",
        "Value": "sdlfkjhsdljkf"
    }
]

javascript看起来像这样

    $('#addressFinder').click(function (e) {
    e.preventDefault();
    var value01 = $("#Address_HouseNameOrNumber").val();
    var value02 = $("#Address_Postcode").val();
    $.ajax({
        url: '/addresstomyjSON/AddressSearch',
        type: 'POST',
        dataType: 'json',
        data: {
            houseNo: value01,
            postCode: value02
        },
        success: function (data) {


            var items = [];

            $.each(data, function (key, val) {
                items.push('<li id="' + key + '">' + val + '</li>');
            });

            $('<ul/>', {
                'class': 'my-new-list',
                html: items.join('')
            }).appendTo('#body');

    });
});

所以我试图把地址写成一个列表,我得到的结果是当前代码是一个ID为0的单个li标签,然后[object Object]重复5次。我认为这与我如何在成功函数中设置变量有关,但我不确定要使用的正确语法是什么。任何人都可以帮助我吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

它是数组中的数组,因此请尝试执行$.each(data[0], ...

修改:更多

$.each(data[0], function () {
    items.push('<li id="' + this.Key + '">' + this.Value + '</li>');
});