无法使用MVC中的jquery / js将json数据(api结果)绑定到下拉列表

时间:2016-02-07 05:58:15

标签: javascript jquery json asp.net-mvc

我想将API返回的json数据绑定到dropdownlist。 但无法获取值id和名称。 Json格式:

{
    "categories": [
        {
            "categories": {
            "id": 1,
            "name": "CatOne"
            }
        },
        {
            "categories": {
                "id": 2,
                "name": "CatTwo"
            }
        }
    ]
}

我正在使用

返回JsonResult
return Json(responseData, JsonRequestBehavior.AllowGet);

在Jquery调用中,我正在使用

$.ajax({
    type: "POST",
    url: "/Home/City",
    contentType: "application/json; charset=utf-8",
    global: false,
    async: false,
    dataType: "json",
    success: function (jsonObj) {
        var listItems = "";
        //here I want to get id and name
    });
    }
});

2 个答案:

答案 0 :(得分:0)

您可以填写json下拉菜单中的下拉列表。

var json = {
        "categories": [
            { "categories": { "id": 1, "name": "CatOne" } },
            { "categories": { "id": 2, "name": "CatTwo" } }
        ]
    }

$.each(json.categories, function () {
    $('select').append('<option value="' + this.categories.id + '">' + this.categories.name + '</option>')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>

答案 1 :(得分:0)

您可以在成功回调中添加一个断点(或debugger;语句)。然后你可以检查你的jsonObj,它会告诉你你需要知道什么。

在这种情况下,您应该能够在jsonObj.categories上进行迭代,并且可以通过jsonObject.categories[i].categories.idjsonObject.categories[i].categories.name访问您的ID和名称属性

所以你的成功方法看起来像: for(var i = 0; i < jsonObj.categories.length; i++) { var category = jsonObj.categories[i].categories; var id = category.id; var name = category.name; }

我还建议以不同的方式格式化你的json,正如其他答案所暗示的那样。