jQuery解析JSON数组

jQuery解析JSON数组,jquery,asp.net,json,parsing,Jquery,Asp.net,Json,Parsing,好吧,这让我发疯了。。 我试图将JSON从web方法解析为,以下是我得到的: function searchPostcode() { var search = $("#txtPostcode").attr("value"); //alert(search); $.ajax({ type: "POST", url: "DeliverySettings.aspx/getDeliveryInfoForPostcode", cont

好吧,这让我发疯了。。 我试图将JSON从web方法解析为
,以下是我得到的:

function searchPostcode() {
    var search = $("#txtPostcode").attr("value");
    //alert(search);
    $.ajax({
        type: "POST",
        url: "DeliverySettings.aspx/getDeliveryInfoForPostcode",
        contentType: "application/json; charset=utf-8",
        data: "{'postcode':'" + search + "'}",
        dataType: "json",
        success: AjaxSucceeded,
        error: AjaxFailed
    });

    function AjaxSucceeded(result) {
        var items = [];

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

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

    }
    function AjaxFailed(result) {
        alert(result.status + ' ' + result.statusText);
    }
}

我试过使用和不使用
eval
都没有效果,我就是无法进入列表。。。请帮忙!:)

什么是
jsonresults
?如果它是一个ID,那么您忘记了
#

此外,在这方面:

items.push('<li id="' + key + '">' + val + '</li>');
还要记住,
键是数组的索引。如果您支持HTML4,则ID以数字开头是无效的

您可能希望将其更改为:

items.push('<li id=product_"' + key + '">' + val.Name + '</li>');
items.push(“
  • “+val.Name+”
  • ”);
    …或类似的东西


    示例:

    我的错,我之前在测试并命名标记,而不是为ID上的标题设置类或idCheers,这已排序。val.Name给了我一个未定义的..?@Leigh:你确认你的回复正确吗
    console.log(result)
    …因为您有
    dataType:'json'
    ,jQuery将为您解析它,所以您应该去掉
    eval()
    ,只需执行
    $。每个(result,
    我删除了eval并按照建议检查了日志,我确实会返回结果,如:d:“[{”Name:“Full plallet”,“Price:“90.0000”,{”Name:”“半托盘”、“价格”:“60.0000”}、{“名称”:“四分之一托盘”、“价格”:“40.0000”}、{“名称”:“小包裹”、“价格”:“30.0000”}、{“名称”:“中包裹”、“价格”:“20.0000”}、{“名称”:“大包裹”、“价格”:“10.0000”}]“但我仍然没有定义..d与此有关吗?
    items.push('<li id="' + key + '">' + val + '</li>');
    
    items.push('<li id="' + key + '">' + val.Name + '</li>');
    
    items.push('<li id=product_"' + key + '">' + val.Name + '</li>');