0

是的,我一直在模糊地尝试使用这个问题示例来用 jsfiddle 测试一些东西。我正在寻找构建一个 JQuery 可排序小部件,但首先我需要了解如何访问我正在创建的对象中的属性 - 在经历了很多混乱之后,现在画了一点空白!

现场小提琴!

$('#ParentCategoryId').change(function() {
    var data =
{
"categories": {
    "category1": {
        "Name": "Maps",
        "Id": 3,
        "orderInList": 1
    },
    "category2": {
        "Name": "Books",
        "Id": 2,
        "orderInList": 2
    }
}
};

$.ajax({
    url: 'http://jsfiddle.net/echo/jsonp/',
    dataType: 'jsonp',
    data: data,
    success: function(data) {
        show_response(data);
    },
    type: 'GET'
});
});            

function show_response(data) {
    $.each(data, function()
    {        
        alert(/**How could I access say, category1's Name property in here?**/);
    };   

编辑 1

抱歉,没有得到完整的 Jsfiddle 链接,保存并编辑它。

编辑 2

使用 JsonLint 创建有效的 Json。现在我可以让警报执行,但我不确定如何访问其中的属性!

编辑 3

将 Jsfiddle 链接更新到最新版本。

4

1 回答 1

1

您需要将 JSON 字符串解析为一个对象:

function show_response(data) {
    data = $.parseJSON(data);
    $.each(data, function(position, value)
    {        
       alert(value.name);
    };

编辑:你的小提琴有语法错误。没有创建 JSON,因为 jQuery 中没有 toJSON 方法。为了使用 each 迭代器读取您的类别,它们需要是一个数组,例如:

categories = [name: "Book", value: ...], [name: "Movie", value: ...]
于 2012-08-13T08:32:18.407 回答