3

json データを含む変数 json があります。そのデータの特定の部分を取得しようとしています。ここに示すようなインデックスを使用して実行できます。

var newdata = json[listid].Taxonomies[0];

ただし、名前を使用してデータを取得できるようにしたい...たとえば、データを取得したい場所

json[listid].Taxonomies[?].InternalName = 'ABC'

「?」の値がわかりません。

タクソノミーで each ループを実行せずにこれを行う方法はありますか?

4

5 に答える 5

1

これはループなしでは実行できませんが、そのループを隠すライブラリが存在します。

たとえば、JSPathInternalNameを使用すると、ネストの深さに関係なく、プロパティのすべてのインスタンスを見つけることができます。

> var json = { 1: { Taxonomies: [ { InternalName: 'ABC' } ] }}
> JSPath.apply('..InternalName', json);
["ABC"]
于 2013-04-16T19:41:09.640 に答える
0
var newdata = json[listid].Taxonomies.filter(function(el){
  return el.InternalName === "ABC";
})[0];

そのようなオブジェクトの最初の出現をカバーする必要があります。すべての出現の配列が必要な場合は[0]、最後に削除できます。

それが質問の言い回しであるため、単一のネストレベルを想定していることに注意してください。任意の深いデータ構造でプロパティを見つける必要がある場合は、ここにある他のライブラリのいくつかがより理にかなっています。

于 2013-04-16T19:39:46.930 に答える
0

JQuery Javascript ライブラリを使用して、JSON をオブジェクトに解析できます。そこから、ドット構文でプロパティにアクセスできます。

http://api.jquery.com/jQuery.parseJSON/

var obj = jQuery.parseJSON('{"name":"Bob"}');
alert(obj.name === "Bob");
于 2013-04-16T20:43:11.300 に答える