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);
    };

編集:あなたのフィドルには構文エラーがあります。jQuery には toJSON メソッドがないため、JSON は作成されません。each イテレータを使用してカテゴリを読み取るには、次のような配列にする必要があります。

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