0

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

我使用 JSON.stringify,但这会给出类型错误的异常。

我怎样才能做到这一点?

谢谢,这是我的代码。

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);
4

2 回答 2

8

尝试使用

Ext.encode(Object)

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

参考Ext.JSON

序列化对象

于 2012-04-13T08:00:15.233 回答
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"
于 2012-04-17T20:44:37.300 回答