{
"@timestamp": "20090905T025031,46Z",
"@toplevelentries": "1",
"viewentry": [
{
"@position": "1",
"@unid": "C798575554CE178648257627004205E0",
"@noteid": "A8A",
"@siblings": "1",
"entrydata": [
{
"@columnnumber": "0",
"@name": "topic",
"text": {
"0": "New building1"
}
}
]
}
]
}
我的json是这样,但是Ext.data.JsonStore的fields不知道怎么写
[b]问题补充:[/b]
我想提取topic的值,也就是想取得new building1。
var store = new Ext.data.JsonStore({
root: 'viewentry',
totalProperty: '@toplevelentries',
idProperty: '@noteid',
remoteSort: true,
fields: [
@name],
proxy: new Ext.data.HttpProxy({
url: 'abc.jsp'
})
});
字段那个地方不知道怎么写,取不到topic的值,页面总是显示undefined
[b]问题补充:[/b]
多谢你,按照你下面思路,确实可以得到那个值了
假如用
// grid columns
columns:[{
id: 'text0',
header: "标题",
dataIndex: 'text0',
width: 150,
sortable: true
}],
弄,那这里id和dataIndex应该弄啥进去才能得到topic的值?
映射完后就是store的事了,跟json没关系了.
如上面我给出的东西里面,已经把viewentry[0].entrydata.text["0"]映射给text0了,那你就只需要:
[code="java"]// grid columns
columns:[{
id: 'text0',
header: "标题",
dataIndex: 'text0',
width: 150,
sortable: true
},{
id: 'topic',
header: "Topic的值",
dataIndex: '@name',
width: 150,
sortable: true
}][/code]
建议多去看看grid/store的api文档.
如果你不熟悉英语,可以看下大漠翻译的:[url]http://damoqiongqiu.iteye.com/[/url]
[code="java"]{
"@timestamp": "20090905T025031,46Z",
"@toplevelentries": "1",
"viewentry": [{
"@position": "1",
"@unid": "C798575554CE178648257627004205E0",
"@noteid": "A8A",
"@siblings": "1",
"entrydata": [{
"@columnnumber": "0",
"@name": "topic",
"text": {
"0": "New building1"
}
}]
}]
}[/code]
问题是你要取哪些字段?
[code="javascript"]
var store = new Ext.data.JsonStore({
root: '@toplevelentries',
totalProperty: 'viewentry',
fields: [
'@position', '@unid', '@noteid', '@siblings', 'entrydata'
,{name:'@columnnumber',mapping:'entrydata.@columnnumber'}
]
});
[/code]
你这json也太变态了.
如下:
[code="javascript"]
var json = {
"@timestamp": "20090905T025031,46Z",
"@toplevelentries": "1",
"viewentry": [{
"@position": "1",
"@unid": "C798575554CE178648257627004205E0",
"@noteid": "A8A",
"@siblings": "1",
"entrydata": [{
"@columnnumber": "0",
"@name": "topic",
"text": {
"0": "New building1"
}
}]
}]
};
var store = new Ext.data.JsonStore({
totalProperty: '@toplevelentries',
root: 'viewentry[0].entrydata',
fields: ['@name', '@columnnumber',
{name: 'text0',mapping: 'text["0"]'}
]
});
store.loadData(json);
alert(store.getAt(0).get('text0'));
[/code]