salesforce notes

Salesforce notes

  1. Json字符串中带有自对象信息,不能直接转成Sobject
{
	"sobjectfield":"value",
    "Children__r": [{
        "SomeField": "some value"
  	}, {
        "SomeField": "some value"
  	}]
}

需要将子对象做一下转化:

{
	"sobjectfield":"value",
    "Children__r": {
    	"totalSize": 123,
        "done": true,
        "records":[{
    		"SomeField": "some value"
      	}, {
    		"SomeField": "some value"
      	}]
    }
}

前端解决方案:

function rewriteSubquery(array) {
   if (array && !array.hasOwnProperty('records')) {
   var tempArray = array;
   array = {
       totalSize: tempArray.length,
       done: true,
       records: tempArray
   	}
    }
   return array;
};

递归解决复杂的对象:

let rewriteSubquery = (jsonObj) => {

    let jsTypes = ['Array', 'Object'];

    if (objType(jsonObj) == jsTypes[0]) {
        jsonObj.map((x, i) => (rewriteSubquery(x)));

        // for (let i = 0; i < jsonObj.length; i++) {

        //     rewriteSubquery(jsonObj[i]);

        // }
    } else {

        for (key in jsonObj) {

            console.log('-->', key);
            //key:属性名
            //attr[key]:属性值    
            let value = jsonObj[key];
            console.log('22-->', objType(value));
            //判断是不是__r
            if (key.endsWith('__r')) {
                //判断是不是数组
                if (objType(value) == jsTypes[0]) {
                    //是数组则格式化为后台可以处理的类型
                    jsonObj[key] = addAttrs(value);
                    // rewriteSubquery(jsonObj[key]);
                    //return jsonObj[key];
                }
            }
            console.log('33-->', objType(value));
            //判断是不是object
            if (objType(value) == jsTypes[1] || objType(value) == jsTypes[0]) {

                console.log('44-->', objType(value));
                rewriteSubquery(value);
            }

        }
    }

};

let addAttrs = (array) => {
    if (array && !array.hasOwnProperty('records')) {
        var tempArray = array;
        array = {
            totalSize: tempArray.length,
            done: true,
            records: tempArray
        }
    }
    return array;
};



let objType = (obj) => {
    let jsTypes = ['String', 'Number', 'Boolean', 'Array', 'Null', 'Undefined', 'Object', 'Function', 'Date', 'RegExp', 'Symbol'];
    let theType;
    jsTypes.map(x => {
        if (Object.prototype.toString.call(obj) == '[object ' + x + ']') {
            theType = x;
        }
    })
    return theType;
}
e.g.:
let jsonObj = {
    "key1": { 'a': 'b' },
    "key2__r": { 'a2': 'b2' },
    "key3__r": [{ 'a3': 'b3' }],
    "key4": [
        {
            "key2__r": { 'a2': 'b2' },
        }, {
            "key3__r": [
                { 'a3': 'b3' }, 
                { 'a3': 'b3' },
                { 'key5__r': [{'b5':'a5'}] },
            ],
        }
    ]
};
//调用
rewriteSubquery(jsonObj);
//输出:
{
	"key1": {"a": "b"},
	"key2__r": {"a2": "b2"},
	"key3__r": {
		"totalSize": 1,
		"done": true,
		"records": [{
			"a3": "b3"
		}]
	},
	"key4": [{"key2__r": {"a2": "b2"}}, {
		"key3__r": {
			"totalSize": 3,
			"done": true,
			"records": [{"a3": "b3"}, 
                           {"a3": "b3"}, {
				"key5__r": {
					"totalSize": 1,
					"done": true,
					"records": [{
						"b5": "a5"
					}]
				}
			}]
		}
	}]
}
  1. 前端导出Excel简版
var data = [
[表头1, 表头2],
[1,2]
]
var filename = fileName + ".xlsx";
var ws_name = sheetName; //Excel第一个sheet的名称
var wb = XLSX.utils.book_new(), ws = XLSX.utils.aoa_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, ws_name);  //将数据添加到工作薄
XLSX.writeFile(wb, filename); //导出Excel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值