在JavaScript開(kāi)發(fā)中,我們經(jīng)常需要解析JSON數(shù)據(jù)。而在使用Ext JS框架時(shí),解析JSON數(shù)據(jù)變得更加簡(jiǎn)單,我們可以使用其預(yù)定義的方法來(lái)完成。下面,我們就來(lái)看一下如何使用Ext JS解析JSON數(shù)據(jù)。
首先,我們需要在Ext中使用Ext.data.reader.Json類(lèi)來(lái)解析JSON數(shù)據(jù)。這個(gè)類(lèi)已經(jīng)內(nèi)置于Ext JS中,我們只需要new一個(gè)實(shí)例化對(duì)象即可。
var jsonData = { "name": "Html", "age": "30", "address": "中國(guó)" }; var jsonReader = new Ext.data.reader.Json(); var parsedData = jsonReader.readRecords(jsonData);
以上代碼中,我們定義了一個(gè)json數(shù)據(jù)和一個(gè)jsonReader實(shí)例。然后我們調(diào)用jsonReader的readRecords方法,將jsonData作為參數(shù)傳入。接著,我們可以通過(guò)parsedData來(lái)獲取我們需要的數(shù)據(jù),比如說(shuō)name屬性的值。
var name = parsedData.records[0].get('name'); console.log(name);
以上代碼中的console.log語(yǔ)句會(huì)輸出'Html',這是因?yàn)槲覀兺ㄟ^(guò)parsedData.records數(shù)組來(lái)獲取了jsonData對(duì)象,并調(diào)用了get方法獲取了其中的name屬性值。
另外,在Ext中,我們也可以直接將JSON數(shù)據(jù)作為一個(gè)store來(lái)使用。我們只需要定義一個(gè)model即可。
Ext.define('User', { extend: 'Ext.data.Model', fields: ['name', 'age', 'address'] }); var store = Ext.create('Ext.data.Store', { model: 'User', data: [{ "name": "Html", "age": "30", "address": "中國(guó)" }] }); var name = store.getAt(0).get('name'); console.log(name);
上面的代碼中,我們使用Ext.define方法定義了一個(gè)User模型,其中包含了name、age和address三個(gè)屬性。接著我們定義了一個(gè)store,并在數(shù)據(jù)中傳入了對(duì)應(yīng)的JSON數(shù)據(jù)。最后,我們同樣通過(guò)getAt和get方法來(lái)獲取數(shù)據(jù)。 這里,我們依然輸出'Html'。
綜上所述,使用Ext JS框架來(lái)解析JSON數(shù)據(jù)非常簡(jiǎn)單。無(wú)論是通過(guò)Ext.data.reader.Json實(shí)例化對(duì)象來(lái)解析數(shù)據(jù),還是直接將JSON數(shù)據(jù)作為一個(gè)store來(lái)使用,Ext都提供了非常方便的方法供我們使用。