/ / Vyhľadávanie JSON pre viaceré hodnoty, ktoré nepoužívajú knižnicu - json, vyhľadávanie

Vyhľadávanie JSON pre viac hodnôt, ktoré nepoužívajú knižnicu - json, vyhľadávanie

Rád by som mohol hľadať nasledujúce JSONobjekt pre objekty obsahujúce kľúč "umiestnenie" potom dostanete na oplátku array alebo json objekt s "meno" osoby plus hodnota umiestnenie pre túto osobu.

Návrat do vzorky:

var zápasov = {{Tom Brady, New York}, {Donald Steven, Los Angeles});

var fbData0 = {
"data": [
{
"id": "X999_Y999",
"location": "New York",
"from": {
"name": "Tom Brady", "id": "X12"
},
"message": "Looking forward to 2010!",
"actions": [
{
"name": "Comment",
"link": "http://www.facebook.com/X999/posts/Y999"
},
{
"name": "Like",
"link": "http://www.facebook.com/X999/posts/Y999"
}
],
"type": "status",
"created_time": "2010-08-02T21:27:44+0000",
"updated_time": "2010-08-02T21:27:44+0000"
},
{
"id": "X998_Y998",
"location": "Los Angeles",
"from": {
"name": "Donald Steven", "id": "X18"
},
"message": "Where"s my contract?",
"actions": [
{
"name": "Comment",
"link": "http://www.facebook.com/X998/posts/Y998"
},
{
"name": "Like",
"link": "http://www.facebook.com/X998/posts/Y998"
}
],
"type": "status",
"created_time": "2010-08-02T21:27:44+0000",
"updated_time": "2010-08-02T21:27:44+0000"
}
]
};

odpovede:

0 pre odpoveď č. 1

@ vsiege - môžete použiť tento javascript lib (http://www.defiantjs.com/) na vyhľadávanie vo vašej štruktúre JSON.

var fbData0 = {
...
},
res = JSON.search( fbData0, "//*[./location and ./from/name]" ),
str = "";

for (var i=0; i<res.length; i++) {
str += res[i].location +": "+ res[i].from.name +"<br/>";
}

document.getElementById("output").innerHTML = str;

Tu je pracovná husle;
http://jsfiddle.net/hbi99/XhRLP/

DefiantJS rozširuje globálny objekt JSON smetódu "search" a umožňuje dotazovanie JSON s XPath výrazmi (XPath je štandardizovaný jazyk dotazu). Metóda vracia pole so zhodami (prázdne pole, ak sa nenašlo).

Môžete testovať výrazy XPath vložením JSON tu:
http://www.defiantjs.com/#xpath_evaluator