0

このタイプのjson入力があります。[{"id1": "val1"、 "id2": "val2"}、{"id1": "val3"、 "id2": "val4"}、...]

jquery-uiで利用可能なオートコンプリートプラグイン内でこれを解析するにはどうすればよいですか?基本的に、id1に対応するval1、val3などをオートコンプリートテキストの一部にします。これをどのように進めることができるかについての提案はありますか?

4

2 に答える 2

1

オートコンプリートウィジェットは、単純な文字列値の配列またはプロパティを持つオブジェクトlabelvalueあるいはその両方を想定しています。

$.mapユーティリティ関数を使用して、データを取得し、適切な形式に変換できます。これは、AJAXリクエストが正常に行われ、データが戻ってくることを前提としています。

$.getJSON("/url", function(data) {
    var src = $.map(function (el) {
        return el.id1;
        // or:
        // return { label: el.id1, value el.id2 };
    });

    $("#id").autocomplete({ 
        source: src
    });
});

例: http: //jsfiddle.net/df6wB/

于 2012-05-22T11:59:52.283 に答える
0

JSON文字列をJSONオブジェクトに変換するには、を使用します$.parseJSON( ... )。これは、 JSONvar jsonstringテキストのみを含むテキストです。parseJSON()文字列が有効なJSONでない場合は失敗します。

var jsonobj = $.parseJSON( jsonstring );

次に、それを使用して、オートコンプリートする新しいオプションを挿入します。

jsonobjこの方法で値を取得します。

alert( jsonobj.id1 ); 
alert( jsonobj.id2 ); 
于 2012-05-21T07:58:02.000 に答える