2012-10-21 70 views
0

我想根據employeeID從JSON提取數據。這是JSON數據的外觀:根據條件從json獲取記錄

{"empDetails": 
[ 
    { 
     "employeeId": 1, 
     "employeeName": 'Anton DSouz', 
     "age": 25, 
     "birthday": '05/05/1988', 
     "sex": 'Male' 
    }, 
    { 
     "employeeId": 2, 
     "employeeName": 'John Hussain', 
     "age": 26, 
     "birthday": '03/25/1987', 
     "sex": 'Female'    
    } 
] 

}

這是我使用以獲取基於僱員數據的代碼:

Ext.define('EmpDetails',{ 
extend: 'Ext.data.Model', 
fields: [ 
    {name: 'employeeId', type: 'int'}, 
    {name: 'employeeName', type: 'string'}, 
    {name: 'age', type: 'int'}, 
    {name: 'birthday', type: 'date', dateFormat: 'd/m/Y'}, 
    {name: 'sex', type: 'string', defaultValue: 'Male'} 
], 
proxy: { 
    type: 'rest', 
    url: 'data.json', 
    format: 'json', 
    reader: { 
     type: 'json', 
     root: 'empDetails' 
    } 
} 
}); 

Ext.onReady(function(){ 
EmpDetails.load(1,{ 
    success: function(empDetails){ 
     console.log("Age: " + empDetails.get('age')); 
    } 
}); 
}); 

但它無法正常工作。它正在尋找的URL不正確:

../../Proxy/data.json/1.json 

1.json根本不存在,我是存在於data.json中的employeeID。

請幫

回答

0

因爲你使用的是其他代理,它試圖將ID添加到URL,所以它看起來像一個正常的休息請求。您應該使用ajax代理。

type: 'ajax' 
+0

它工作,如果我把'rest'改成'ajax',但沒有得到預期的結果。如果我的數據是1,那麼年齡是25.但是如果我發送2,那麼返回的年齡也是25.根據我上面發佈的json數據,它應該是26。請讓我知道上述代碼中的問題。 – user182944

+0

你總是返回所有記錄。如果您傳遞參數,則需要在服務器代碼中應用適當的過濾器以獲取正確的記錄。 –

+0

@ user182944,如果工作正常,請將其標記爲已解決,這將有助於他人處理您的情況 –