如何将字符串解码为对象 EXTJS 6
How to decode string to object EXTJS 6
我正在使用 ExtJS 从数据库创建一个 formPanel dynamyc(从服务器到对象 extjs 的字符串结果)
Ext.Ajax.request({
async : false,
method : 'POST',
url : '/Devt/GetFormItemCustomization',
params : {
TableName : 'tabeltest',
col : 1
},
success : function (response) {
var results = Ext.decode(response.responseText);
console.log(results );
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : [results]
});
}
})
来自服务器的响应:
{
fieldLabel:'Employee Id',
xtype:'textfield',
allowBlank:false,
},
{
fieldLabel:'Nick Name',
xtype:'textfield',
allowBlank: false,
}
但这只会根据最后的数据创建一个对象。
对象
{
fieldLabel: "Nick Name",
xtype: "textfield",
allowBlank: false
}
我希望服务器解码的响应变成两个对象:
对象 {fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false}
对象 {fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
有什么建议吗?
好吧,您的服务器应该始终 return 有效 JSON。逗号分隔的两个对象无效 JSON。 (如果您不相信我,您可以与许多在线 JSON 验证器中的一个进行核对。)您的服务器可能 return 对象数组吗?像这样:
[
{fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false},
{fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
]
在这种情况下,您可以轻松地继续并通过删除围绕 results
变量的数组从这些创建表单:
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : results
});
我正在使用 ExtJS 从数据库创建一个 formPanel dynamyc(从服务器到对象 extjs 的字符串结果)
Ext.Ajax.request({
async : false,
method : 'POST',
url : '/Devt/GetFormItemCustomization',
params : {
TableName : 'tabeltest',
col : 1
},
success : function (response) {
var results = Ext.decode(response.responseText);
console.log(results );
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : [results]
});
}
})
来自服务器的响应:
{
fieldLabel:'Employee Id',
xtype:'textfield',
allowBlank:false,
},
{
fieldLabel:'Nick Name',
xtype:'textfield',
allowBlank: false,
}
但这只会根据最后的数据创建一个对象。 对象
{
fieldLabel: "Nick Name",
xtype: "textfield",
allowBlank: false
}
我希望服务器解码的响应变成两个对象:
对象 {fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false}
对象 {fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
有什么建议吗?
好吧,您的服务器应该始终 return 有效 JSON。逗号分隔的两个对象无效 JSON。 (如果您不相信我,您可以与许多在线 JSON 验证器中的一个进行核对。)您的服务器可能 return 对象数组吗?像这样:
[
{fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false},
{fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
]
在这种情况下,您可以轻松地继续并通过删除围绕 results
变量的数组从这些创建表单:
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : results
});