我有fetch()設置從GotoWebinar使用它們的API檢索歷史網絡研討會詳細信息。它返回一個JSON體具有這種結構,對象的數組:fetch()響應截斷大數字
[{ 「webinarKey」:5653814518315977731, 「webinarID」: 「562189251」, 「受試者」: 「樣品網絡研討會」, 「organizerKey」 :100000000000331530 }, { 「webinarKey」:9999814518315977731, 「webinarID」: 「999989251」, 「受試者」: 「樣品網絡研討會」, 「organizerKey」:999900000000331530 }]
我的代碼是在Zapier動作(node.js)和重要位l中實施ooks這樣的:
//Handle errors from fetch call
function handleFetchStatus(response){
console.log('Fetch Response Status: ' + response.status);
switch(response.status){
case 200: //Request executed properly
break;
default:
throw Error(response.status + ':' + JSON.stringify(response));
}
return response.json();
}
function handleFetchBody(oResponse){
if (oResponse) {
console.log('handleFetchBody: ' + JSON.stringify(oResponse));
}
callback(null, oResponse);
}
//Send POST request.
fetch(getFetchURL(), getFetchOptions())
.then(handleFetchStatus)
.then(handleFetchBody)
.catch(function(error) {
callback(error);
});
我有問題是「webinarKey」,較長的數字,正在從「5653814518315977731」截斷爲「5653814518315978000」。我相信這是不處理大量數據的json()函數。
我該如何解決這個問題?
我相信我需要在使用json()之前將webinarKey變成字符串,但我不確定如何訪問該對象的所有元素。甚至可能在提取響應中。
據我所知,我不能存儲一個很大的數字,它需要轉換爲一個字符串。但是API調用返回一個我無法控制的格式的響應主體。那麼如何訪問響應主體的元素,以便在將它傳遞給.json()之前將它們轉換爲字符串? –
如果您將響應解析爲文本('response.text()'而不是'response.json()'),則可以調用'text.replace(/(「[^」] *「\ s *:\ s *)(\ d {16,})/ g,'$ 1'$ 2'')'用字符串替換所有16位或16位以上的字符串,然後您可以將此文本傳遞給'JSON.parse()' – csander
,那就是訣竅,我希望不要做字符串解析,但它似乎是唯一的方法。 –