js調(diào)用datasnap rest server
場(chǎng)景:
有嵌套的多層json數(shù)據(jù)結(jié)構(gòu)的變量,js通過post調(diào)用 datasnap rest server,會(huì)出現(xiàn)問題:
var json = [{
stcd: system.sn,
dateTime: dateTimeStr,
stnm: system.stnm,
lgtd: system.lgtd,
lttd: system.lttd,
stlc: system.stlc,
mydata: { "test_key": "test_value" } // 簡化結(jié)構(gòu)
}];
var request = { type: 'text', // 指定為純文本請(qǐng)求
headers: { Authorization: 'Basic ' + btoa('xxxxx:yyyyy'), 'Content-Type': 'application/json; charset=UTF-8' },
data: json
};
var resp = API.httpPost(url, request, 10);
API.log('API Response: ' + JSON.stringify(resp));
=====================
返回:mydata是null
[2024-10-26 19:57:07 017] post返回:{"code":"99913","resp":""}
要求:傳送到api是字符串json。而js的 JSON.stringify()帶有多層就會(huì)出現(xiàn)問題,api解析不了。所以每一層都要通過JSON.stringify()轉(zhuǎn)換。
var json = [{ stcd: system.sn, mydata: JSON.stringify([{ "key": "test_key", "value": "test_value" }]) }]; 然后: var request = { type: 'json', headers: { Authorization: authHeader, 'Content-Type': 'application/json; charset=UTF-8' }, data: JSON.stringify(json) }; API.httpPost(url, JSON.stringify(request), 10);
posted on 2024-10-27 09:03 USEGEAR 閱讀(32) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)