2017-05-06 3 views
0

私たちは、私は私のローカルストレージに次のようなJSONを持っているとしましょうはどのように私は、キー値を経由して特定のJSONデータ値を取得することができます

top: [ {"id","one","name":"java"}, 
     {"id","two","name","javascript"}, 
     {"id","three","name","jquery"] 
    ] 

ここでの問題私は名前だけの値を使用してIDを取得することができる方法であります? たとえば、ID値"two"を取得するには、"javascript"を使用してクエリを作成し、値"two"になる必要があります。 上記の問題を解決する方法はありますか?

+1

申し訳ありませんが、有効なJSONではないthatsの... –

答えて

3

.your JSONが無効であるArray#findてみてください。あなたが

var toper = [{ 
 
    "id": "one", 
 
    "name": "java", 
 
    }, 
 
    { 
 
    "id": "two", 
 
    "name": "javascript", 
 
    }, 
 
    { 
 
    "id": "three", 
 
    "name": "jquery", 
 
    } 
 
] 
 

 
function find_id(str) { 
 
    return toper.find((a) => { 
 
    if (a.name == str.trim()) { 
 
     return a 
 
    } 
 
    }).id 
 
} 
 
console.log(find_id('javascript'))
の下にこのような形式を変更することができ、プロパティ

var input = [{ 
 
      "id":"one", 
 
      "name":"java" 
 
      }, 
 
      { 
 
      "id":"two", 
 
      "name":"javascript" 
 
      }, 
 
      { 
 
      "id":"three", 
 
      "name":"jquery" 
 
      }]; 
 

 
     
 
var result = input.reduce((acc, b) => { 
 
    acc[b.name] = b.id; 
 
    return acc; 
 
}, {}); 
 

 
console.log(result['javascript']);

0

としてそれにアクセスするのは、オブジェクトへのご入力を変換してみましょう

0

JSONには誤植がいくつかあります。それは上記のタイの例のようにすべきです。 (テキストなど)のローカルストレージから取得し、(JSONオブジェクトとして)それを使用する

:次に

var myJson = JSON.parse(myText) 

for (var i=0 ; i<myJson.length ; i++) { 
    if myJson[i].name == "javascript" { 
     var a = myJson[i].id; 
     console.log(a); 
    } 
} 
関連する問題