2017-05-06 153 views
0

讓我們說我有以下的JSON在我的本地存儲如何通過鍵值得到具體的JSON數據值

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

這裏的問題是我怎麼可以只使用名稱值獲取ID ? 例如,如果我想獲得id值"two",我需要能夠使用"javascript"進行查詢,然後達到值"two"。 有沒有辦法實現上述問題?

+1

對不起,那不是一個有效的JSON ... –

回答

3

讓我們轉換您的輸入對象,然後訪問它的屬性

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

嘗試用Array#find。您的JSON是無效的。你可以改變這樣的格式如下

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'))

0

您的JSON有一些錯字錯誤。它應該像上面的Tai的例子。

從本地存儲檢索(文本),並使用它(如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); 
    } 
}