在Sencha Touch 2中存储的字符串
我使用Javascript SOAP Client从XML中的SOAP Web服务接收到响应。我把它想要的所有数据解析为一个字符串。在Sencha Touch 2中存储的字符串
[{ZNA_COD:'111',ZNA_DESIG:'Blabla'},{ZNA_COD:'11',ZNA_DESIG:'Blabla'},{ZNA_COD:'1',ZNA_DESIG:'Blabla'},{ZNA_COD:'2',ZNA_DESIG:'Blabla'},{ZNA_COD:'11111',ZNA_DESIG:'Blabla'}]
如何将它存储在Sencha Touch 2中?什么是最好的方法?
我已经使用了ST1.1并且只是刚刚在ST2上开始。
我想这取决于你想要做什么。如果您的数据始终是从实时来源提取的,则可以使用Ext.data.Store并定义一个阅读器。在你的情况下,它会有一种类型的XML。
Ext.define('ZNA', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'ZNA_COD', type: 'string'},
{name: 'ZNA_DESIG', type: 'string'}
]
},
});
var store = Ext.create('Ext.data.Store', {
model: 'ZNA',
proxy: {
type: 'ajax',
url : 'www.your-service-url.com',
reader: {
type: 'xml',
record: 'ZNA'
}
}
});
store.load();
如果您使用此过程,当您调用加载方法时,它会自动将数据拉入您的商店。或者你可以设置autoLoad。
如果您的数据已经存在于您的设备上,并且很满意您的设置。然后你可以创建一个新的模型实例并用你的值填充它。然后你将它保存到你的商店。
var instance = Ext.create('ZNA', {
ZNA_COD:'111',
ZNA_DESIG:'Blabla'
});
store.add(instance);
您可能需要检查语法,我可能会有一些ST1.1的东西在那里浮动。
首先你应该分析你的数据到有效的JSON字符串,对于如:{data: [your data here]}
前提是你能做到这一点,那么其剩余的任务是包含2个步骤很简单:
- 使用
Ext.decode
到您的字符串解析到一个JSON对象 - 然后
result.data
现在是你的结果阵列。遍历它们并将它们添加到Ext.data.Store
非常简单,因为我认为这里不需要写下来,不是吗?
感谢您的回答,但我要从@Martin提供一个D – 2012-04-13 08:32:30
我试过了你的方式,并且Ext.decode在第一个“{”之后有东西时似乎不接受Json字符串。使用你的例子,如果我有“{数据:[...”它返回这是一个糟糕的JSON字符串。 – 2012-04-13 10:23:42
感谢您的帮助!代码的最后一次和平工作就像是我的问题的魅力。不知道我们可以在Sencha Touch上做到这一点。 – 2012-04-13 08:30:05