このタイプのjson入力があります。[{"id1": "val1"、 "id2": "val2"}、{"id1": "val3"、 "id2": "val4"}、...]
jquery-uiで利用可能なオートコンプリートプラグイン内でこれを解析するにはどうすればよいですか?基本的に、id1に対応するval1、val3などをオートコンプリートテキストの一部にします。これをどのように進めることができるかについての提案はありますか?
オートコンプリートウィジェットは、単純な文字列値の配列またはプロパティを持つオブジェクトlabel
、value
あるいはその両方を想定しています。
$.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/
JSON文字列をJSONオブジェクトに変換するには、を使用します$.parseJSON( ... )
。これは、 JSONvar jsonstring
テキストのみを含むテキストです。parseJSON()
文字列が有効なJSONでない場合は失敗します。
var jsonobj = $.parseJSON( jsonstring );
次に、それを使用して、オートコンプリートする新しいオプションを挿入します。
jsonobj
この方法で値を取得します。
alert( jsonobj.id1 );
alert( jsonobj.id2 );