簡體   English   中英

Google javascript - 訪問和重命名數字對象名稱

[英]Google javascript - accessing and renaming numeric object names

我將json數據導入到google腳本中:

var doc = Utilities.jsonParse(txt);

我可以訪問大多數這樣的對象......

var date = doc.data1.dateTime;
var playerName = doc.data1.playerName;
var playerId = doc.data1.playerID;
var teamNumber = doc.data2.personal.team;

我需要訪問的一堆對象將數字作為對象名稱...

doc.data2.personal.team.87397394.otherdata
doc.data2.personal.team.87397395.otherdata
doc.data2.personal.team.87397396.otherdata
doc.data2.personal.team.87397397.otherdata

...但是當我嘗試用...讀取數據時

var teamId = doc.data2.personal.team.87397394;

...我收到錯誤“丟失;在陳述之前。”

我試過這個......

var teamId = doc.data2.personal.team[87397394];

...並在日志中獲得“teamId undefined”。

我也用同樣的結果把它綁起來......

var teamId = doc.data2.personal.team[+'6803761'];

我可以使用“For In”非常輕松地將名稱作為字符串讀取,但無法訪問對象本身。 到目前為止我發現的每個例子都使用了括號,所以我很難接下來要嘗試什么。

謝謝! 布賴恩

UPDATE

我根據您的建議使用此方法將對象名稱轉換為變量並使用括號中的變量。 沒有錯誤,但var測試仍然是“未定義的”......

for(var propertyName in doc.data2.personal.team) {
    // propertyName is what you want
    // you can get the value like this: myObject[propertyName]
    Logger.log (propertyNames);
    var test = doc.data2.personal.team[propertyName];
}

日志顯示對象名稱,如預期的那樣......
87397394
87397395
87397396
87397397

我認為這是Google實施中的一個錯誤。 這是一個例子,如果有人想驗證它。 測試將返回undefined ...

function myFunction1() {
  var txt = UrlFetchApp.fetch("http://www.hersheydigital.com/replays/replays_1.json").getContentText();
  var doc = Utilities.jsonParse(txt);
  for(var propertyName in doc.datablock_battle_result.vehicles) {
      Logger.log (propertyName);
      var test = doc.datablock_battle_result.vehicles[propertyName];
   }
}

問題似乎出現在Utitlies.jsonParse 以下工作正常

var txt = UrlFetchApp.fetch("http://www.hersheydigital.com/replays/replays_1.json").getContentText();
var doc = JSON.parse(txt);
for(var propertyName in doc.datablock_battle_result.vehicles) {
    var vehicle = doc.datablock_battle_result.vehicles[propertyName];
    Logger.log('Vehicle id is ' + propertyName);
    Logger.log('Vehicle value is  ' + JSON.stringify(vehicle));
    break;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM