在使用Elasticsearch(ES)查詢(xún)獲取數(shù)據(jù)時(shí),通常會(huì)返回一個(gè)JSON對(duì)象。而前端開(kāi)發(fā)人員則需要從返回的JSON對(duì)象中解析出需要的數(shù)據(jù),并進(jìn)行處理。以下是一些基本的JSON解析技巧,可以幫助你更輕松地處理ES查詢(xún)返回的JSON對(duì)象。
// 假設(shè)我們的查詢(xún)返回了以下JSON對(duì)象 { "took": 8, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 1, "max_score": 1, "hits": [ { "_index": "my_index", "_type": "my_type", "_id": "1", "_score": 1, "_source": { "name": "John", "age": 30, "address": { "city": "New York", "state": "NY" } } } ] } } // 解析JSON對(duì)象 var json = JSON.parse(response); // 假設(shè)response為ES查詢(xún)返回的JSON對(duì)象 // 訪問(wèn)JSON對(duì)象中的屬性 var took = json.took; // 8 var totalHits = json.hits.total; // 1 var name = json.hits.hits[0]._source.name; // "John" // 訪問(wèn)嵌套的屬性 var city = json.hits.hits[0]._source.address.city; // "New York"
還有許多其他的JSON解析技巧可以使用,如使用循環(huán)遍歷JSON對(duì)象中的數(shù)組屬性,使用條件語(yǔ)句處理特定屬性等。但以上技巧已足以滿(mǎn)足大部分情況下對(duì)ES查詢(xún)返回的JSON對(duì)象的處理需求。