如何在JAVA中为Ext.data.JsonStore创建JSONObject?
这是我的ExtJS代码,用于在网格中显示我的记录如何在JAVA中为Ext.data.JsonStore创建JSONObject?,java,json,extjs,Java,Json,Extjs,这是我的ExtJS代码,用于在网格中显示我的记录 var remoteProxy = new Ext.data.ScriptTagProxy({ url : 'hastanebilgilerinigetir' }); var recordFields = [ { name : 'hid', mapping : 'hid'},
var remoteProxy = new Ext.data.ScriptTagProxy({
url : 'hastanebilgilerinigetir'
});
var recordFields = [
{ name : 'hid', mapping : 'hid'},
{ name : 'isim', mapping : 'isim'},
{ name : 'adres', mapping : 'adres'},
{ name : 'telefon', mapping : 'telefon'},
{ name : 'bashekimid', mapping : 'bashekimid' }
];
var remoteJsonStore = new Ext.data.JsonStore({
proxy : remoteProxy,
storeId : 'ourRemoteStore',
root : 'records',
autoLoad : false,
//totalProperty : 'totalCount',
remoteSort : true,
fields : recordFields,
idProperty : 'hid'
});
var textFieldEditor = new Ext.form.TextField();
var numberFieldEditor = {
xtype : 'numberfield',
minLength : 5,
maxLength : 5
};
var columnModel = [
{
header : 'Hastane Adı',
dataIndex : 'isim',
sortable : true,
editor : textFieldEditor
},
{
header : 'Telefon',
dataIndex : 'telefon',
sortable : true,
editor : textFieldEditor
},
{
header : 'Adres',
dataIndex : 'adres',
sortable : true,
editor : textFieldEditor
},
{
header : 'Baş Hekim ID',
dataIndex : 'bashekimid',
sortable : true,
editor : numberFieldEditor
},
{
header : 'Hastane ID',
dataIndex : 'hid',
sortable : true,
editor : numberFieldEditor
}
];
var grid = {
xtype : 'editorgrid',
columns : columnModel,
id : 'myEditorGrid',
store : remoteJsonStore,
loadMask : true,
bbar : pagingToolbar,
stripeRows : true,
viewConfig : {
forceFit : true
},
listeners : {
cellcontextmenu : doCellCtxMenu,
destroy : function(thisGrid) {
if (thisGrid.rowCtxMenu) {
thisGrid.rowCtxMenu.destroy();
}
}
}
};
var hastanegridi = new Ext.Panel({
title: 'Hastaneler',
height : 700,
width : 950,
border : false,
layout : 'fit',
items : grid
});
remoteJsonStore.load({
params : {
start : 0,
limit : 50
}
});
我有以下java代码来创建JSONObject
@Override
public JSONObject listHastanesAsJson() {
List<Hastane> lst = hastaneDao.listHastane();
JSONArray arr = new JSONArray();
// int i=lst.size();
// JSONObject counter = new JSONObject();
// counter.put("totalCount", i);
// arr.add(counter);
for(Hastane kan:lst){
JSONObject obj = new JSONObject();
obj.put("hid", kan.getHid());
obj.put("isim", kan.getIsim());
obj.put("adres", kan.getAdres());
obj.put("telefon", kan.getTelefon());
obj.put("bashekimid", kan.getBahekimid());
arr.add(obj);
}
JSONObject o = new JSONObject();
o.put("records", arr);
return o;
}
但当我试图在浏览器中显示我的数据时,我会在“有效标签”下面出现错误
在服务器端创建JSONObject时是否有错误
我的json数据必须与此链接中的类似,但我不知道如何像这样构造我的数据:
您可以从服务器发送类似的内容,或者返回JSONArray。
我从来没有从事过
ExtJs
,但这就是我在DOJO
中填充网格的方式,您正在使用Ext.data.ScriptTagProxy
它用于JSONP(跨域请求)
您的请求url应该如下所示:
callbackFunction({
"records": [
{
"hid": 1,
"isim": "Zeynep Kamil",
"adres": "Istanbul",
"telefon": "056765434567",
"bashekimid": 1
},
{
"hid": 2,
"isim": "Ankara Hastanesi",
"adres": "Ankara",
"telefon": "345678987658",
"bashekimid": 2
},
{
"hid": 3,
"isim": "Baskent Hastanesi",
"adres": "Ankara",
"telefon": "567898765697",
"bashekimid": 3
}
]
})
http://extjsinaction.com/dataQuery.php?callback=callbackFunction
您的回答应该是这样的:
callbackFunction({
"records": [
{
"hid": 1,
"isim": "Zeynep Kamil",
"adres": "Istanbul",
"telefon": "056765434567",
"bashekimid": 1
},
{
"hid": 2,
"isim": "Ankara Hastanesi",
"adres": "Ankara",
"telefon": "345678987658",
"bashekimid": 2
},
{
"hid": 3,
"isim": "Baskent Hastanesi",
"adres": "Ankara",
"telefon": "567898765697",
"bashekimid": 3
}
]
})
如果你需要更多关于JSONP的信息,谷歌是你的朋友
一些好的我在jsonlint.com上验证了JSON,它是有效的。但是有一些错误我找不到。你如何在客户端获取JSON?@limelights我已经添加了我的网格代码检查EXtJs的文档。网格支持的JSON数据结构是什么。
callbackFunction({
"records": [
{
"hid": 1,
"isim": "Zeynep Kamil",
"adres": "Istanbul",
"telefon": "056765434567",
"bashekimid": 1
},
{
"hid": 2,
"isim": "Ankara Hastanesi",
"adres": "Ankara",
"telefon": "345678987658",
"bashekimid": 2
},
{
"hid": 3,
"isim": "Baskent Hastanesi",
"adres": "Ankara",
"telefon": "567898765697",
"bashekimid": 3
}
]
})