如何从Extjs.Class编码到JSON字符串?

时间:2012-04-13 07:44:12

标签: json extjs extjs4

我想将EXTjs类编码为Json,但是,我不能......

我使用JSON.stringify,但这会给出Exception with Type error。

我该怎么做?

谢谢,我的代码。

Ext.define('Text',{
    extend : 'Ext.Img',
    x : 50,
    y : 50,
    size : 100,
    text : 'Text',
    name : 'Text',
    src : ' ',
    tag : '',
    Events : []
});

var text = new Text();
var temp = JSON.stringify(text);

2 个答案:

答案 0 :(得分:8)

尝试使用

Ext.encode(Object)

它编码一个对象,数组或其他值&返回JSON字符串。

参考Ext.JSON

serialize object

答案 1 :(得分:5)

这里的问题是ExtJS在对象上创建内部引用,结果是周期性的。因此,默认的JSON序列化程序失败。

您需要手动定义toJSON方法,该方法将由JSON.stringify调用:

Ext.define('Text', {
    extend : 'Ext.Img',
    x : 50,
    y : 50,
    size : 100,
    text : 'Text',
    name : 'Text',
    src : ' ',
    tag : '',
    Events : [],

    toJSON: function () {
        return 'Whatever you like' + this.text + this.size // etc.
    }

});

JSON.stringify(new Text()); // "Whatever you likeText100"