Javascript 将jQuery对象转换为JSON

Javascript 将jQuery对象转换为JSON,javascript,jquery,json,Javascript,Jquery,Json,我有一个jQuery对象,里面有值和方法。我需要将其转换为JSON 请看以下对象: 我的self.pgrid.config.columnFields与上面的屏幕截图相同 当我将此对象转换为JSON并将该JSON返回到对象时,它不会返回aggregateFunc和formatFunc 查看以下JSON.parse(JSON.stringify(self.pgrid.config.columnFields))的屏幕截图: 这里我想得到这两种方法。我怎样才能得到它们 生成对象的代码如下: this

我有一个jQuery对象,里面有值和方法。我需要将其转换为JSON

请看以下对象:

我的
self.pgrid.config.columnFields
与上面的屏幕截图相同

当我将此对象转换为JSON并将该JSON返回到对象时,它不会返回
aggregateFunc
formatFunc

查看以下
JSON.parse(JSON.stringify(self.pgrid.config.columnFields))
的屏幕截图:

这里我想得到这两种方法。我怎样才能得到它们

生成对象的代码如下:

this.columnFields = (config.columns || []).map(function (fieldconfig) {
    fieldconfig = ensureFieldConfig(fieldconfig);
    return createfield(self, axe.Type.COLUMNS, fieldconfig, getfield(self.allFields, fieldconfig.name));
});

function ensureFieldConfig(obj) {
    if (typeof obj === 'string') {
        return {
            name: self.captionToName(obj)
        };
    }
    return obj;
}

function createfield(rootconfig, axetype, fieldconfig, defaultfieldconfig) {
    var axeconfig;
    var fieldAxeconfig;

    if (defaultfieldconfig) {
        switch (axetype) {
            case axe.Type.ROWS:
                axeconfig = rootconfig.rowSettings;
                fieldAxeconfig = defaultfieldconfig.rowSettings;
                break;
            case axe.Type.COLUMNS:
                axeconfig = rootconfig.columnSettings;
                fieldAxeconfig = defaultfieldconfig.columnSettings;
                break;
            case axe.Type.DATA:
                axeconfig = rootconfig.dataSettings;
                fieldAxeconfig = defaultfieldconfig.dataSettings;
                break;
            default:
                axeconfig = null;
                fieldAxeconfig = null;
                break;
        }
    } else {
        axeconfig = null;
        fieldAxeconfig = null;
    }

    var merged = mergefieldconfigs(fieldconfig, fieldAxeconfig, axeconfig, defaultfieldconfig, rootconfig);

    return new Field({
        name: getpropertyvalue('name', merged.configs, ''),
        caption: getpropertyvalue('caption', merged.configs, ''),
        sort: {
            order: getpropertyvalue('order', merged.sorts, null),
            customfunc: getpropertyvalue('customfunc', merged.sorts, null)
        },
        subTotal: {
            visible: getpropertyvalue('visible', merged.subtotals, true),
            collapsible: getpropertyvalue('collapsible', merged.subtotals, true),
            collapsed: getpropertyvalue('collapsed', merged.subtotals, false) && getpropertyvalue('collapsible', merged.subtotals, true)
        },
        aggregateFuncName: getpropertyvalue('aggregateFuncName', merged.functions, 'sum'),
        aggregateFunc: getpropertyvalue('aggregateFunc', merged.functions, aggregation.sum),
        formatFunc: getpropertyvalue('formatFunc', merged.functions, null)
    }, false);
}

function getpropertyvalue(property, configs, defaultvalue) {
    for (var i = 0; i < configs.length; i++) {
        if (configs[i][property] != null) {
            return configs[i][property];
        }
    }
    return defaultvalue;
}
this.columnFields=(config.columns | |[]).map(函数(fieldconfig){
fieldconfig=fieldconfig(fieldconfig);
返回createfield(self,axe.Type.COLUMNS,fieldconfig,getfield(self.allFields,fieldconfig.name));
});
功能配置(obj){
如果(对象的类型=='string'){
返回{
姓名:self.captionToName(obj)
};
}
返回obj;
}
函数createfield(rootconfig、axetype、fieldconfig、defaultfieldconfig){
var axeconfig;
var fieldAxeconfig;
如果(defaultfieldconfig){
开关(axetype){
case axe.Type.ROWS:
axeconfig=rootconfig.rowSettings;
fieldAxeconfig=defaultfieldconfig.rowSettings;
打破
case.Type.COLUMNS:
axeconfig=rootconfig.columnSettings;
fieldAxeconfig=defaultfieldconfig.columnSettings;
打破
case.Type.DATA:
axeconfig=rootconfig.dataSettings;
fieldAxeconfig=defaultfieldconfig.dataSettings;
打破
违约:
axeconfig=null;
fieldAxeconfig=null;
打破
}
}否则{
axeconfig=null;
fieldAxeconfig=null;
}
var merged=mergefieldconfigs(fieldconfig、fieldAxeconfig、axeconfig、defaultfieldconfig、rootconfig);
返回新字段({
名称:getpropertyvalue('name',merged.configs',),
标题:getpropertyvalue('caption',merged.configs',),
排序:{
order:getpropertyvalue('order',merged.sorts,null),
customfunc:getpropertyvalue('customfunc',merged.sorts,null)
},
小计:{
可见:getpropertyvalue('visible',merged.subtotals,true),
可折叠:getpropertyvalue(“可折叠”,合并。小计,真),
折叠:getpropertyvalue('collapsed',merged.subtotals,false)&&getpropertyvalue('collapsable',merged.subtotals,true)
},
aggregateFuncName:getpropertyvalue('aggregateFuncName',merged.functions',sum'),
aggregateFunc:getpropertyvalue('aggregateFunc',merged.functions,aggregation.sum),
formatFunc:getpropertyvalue('formatFunc',merged.functions,null)
},假);
}
函数getpropertyvalue(属性、配置、默认值){
对于(变量i=0;i
json不支持函数您为什么要将其转换为json,您要对该json做什么?我想将该对象存储在数据库/localstorage中。您还需要存储函数??创建一个具有所需最小值的新对象