私は、APIを使ってGotoWebinarから履歴ウェブセミナーの詳細を取得するためのfetch()これは、このような構造を持つオブジェクトの配列を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」、長い数は、「5653814518315978000」に「5653814518315977731」から切り捨てされていることです。私はそれがjson()関数だと信じています。
どうすればいいですか?
json()を使用する前にwebinarKeyを文字列にする必要があると思いますが、オブジェクトのすべての要素にアクセスする方法がわかりません。フェッチレスポンスでも可能ですか?
大きな数値を格納することはできず、文字列に変換する必要があることを理解します。しかし、API呼び出しは、私が制御できない形式の応答本文を返します。だから、どのようにレスポンスボディの要素にアクセスすることができますか?そのため、それらを.json()に渡す前に文字列に変換することができますか? –
レスポンスをテキスト( 'response.json()'の代わりに 'response.text()')として解析すると 'text.replace(/(" [^ "] *" \ s *:\ s *)(\ d {16、})/ g、 '$ 1 "$ 2"') 'この文字列を' JSON.parse() 'に渡すことができます。 – csander
ありがとう私はそれを文字列解析しないことを望んでいましたが、それは唯一の方法だと思われます。 –