GooglespreadSheet のGASを用いてスプレッドシートのデータをswiftで処理するために以下のサイトを参考にしました。
https://qiita.com/saenuruki/items/01f713b14ea632e606e0
GAS
1function myFunction() { 2 var ss = SpreadsheetApp.getActiveSpreadsheet() 3 var sss = ss.getSheetByName('ios') 4 var value = sss.getRange(1,1,8,3).getValues() 5 var result_box = []; 6 for(var i=1;i<8;i++){ 7 var jsonRecord = { 8 "num":value[i][0], 9 "input":value[i][1], 10 "all":value[i][2] 11 } 12 result_box.push(jsonRecord) 13 } 14 return result_box; 15} 16 17function doGet(e){ 18 var result = JSON.stringify({"vitals":myFunction()}); 19 return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON); 20}
webアプリケーションとして導入しURLを取得した後、
swift
1struct APIRequest { 2 3 static let mainAPIHost: String = "https://script.google.com/macros/s/AKf****************swg/exec" 4 5 static func getSheetData(){ 6 7 var request = URLRequest(url: URL(string: mainAPIHost)!) 8 request.httpMethod = "GET" 9 let task = URLSession.shared.dataTask(with: request) { data, response, error in 10 guard let jsonData = data else { return } 11 12 struct Result: Codable { 13 var vitals: [Vital] 14 } 15 16 do { 17 let vitals = try JSONDecoder().decode(Result.self, from: jsonData) 18 print(vitals) 19 } catch { 20 print(error.localizedDescription) 21 } 22 } 23 task.resume() 24 } 25} 26 27struct Vital: Codable { 28 var num: Int 29 var input: Int 30 var all: Int 31}
としました。
すると以下のようなerrorでました。
error
1The data couldn't be read because it isn't in the correct format.
試しにGASで作成されたjsonファイルを確認してみると以下のようでした。
どこが原因か不明であるため、ご教授よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/31 09:02