Arrays 表[1]在表确实存在且具有值时返回nil
这是一个名为garrysmod的游戏脚本。是游戏中包含的一个我可以调用的函数 我包含的代码片段返回以下内容:(如果删除tostring(),则返回相同的输出)Arrays 表[1]在表确实存在且具有值时返回nil,arrays,indexing,lua,garrys-mod,source-engine,Arrays,Indexing,Lua,Garrys Mod,Source Engine,这是一个名为garrysmod的游戏脚本。是游戏中包含的一个我可以调用的函数 我包含的代码片段返回以下内容:(如果删除tostring(),则返回相同的输出) 我希望能得到“gm_构造”。我在这里遗漏了什么?您没有注意到的是,PrintTable先打印gm\u构造:,然后打印1=。 这意味着该表实际上只包含带有3个键的表的gmu构造键 要始终正确读取PrintTable输出,请查看标识1=被向右列表一次,这意味着它们是嵌套在最初打印的表中的某个内容的键 如果这仍然让您感到困惑,请尝试运行以下操作
我希望能得到“gm_构造”。我在这里遗漏了什么?您没有注意到的是,PrintTable先打印
gm\u构造:
,然后打印1=
。
这意味着该表实际上只包含带有3个键的表的gmu构造键
要始终正确读取PrintTable输出,请查看标识1=
被向右列表一次,这意味着它们是嵌套在最初打印的表中的某个内容的键
如果这仍然让您感到困惑,请尝试运行以下操作:
对于k,v成对(mapsawnsdata)do
打印(k,“=”,v)
结束
这不会打印嵌套内容
为了使您的代码能够正常工作,请执行mapSpawnsData.gm_构造[1]
或mapSpawnsData[“gm_构造”][1]
谢谢,这让我走上了正确的方向。
local mapSpawnsData = {}
local JSONData = file.Read(filePath) -- read file as json text
mapSpawnsData = util.JSONToTable(JSONData) -- convert JSON to table
print("TABLE:")
PrintTable(mapSpawnsData)
print("TABLE[1]:")
print(tostring(mapSpawnsData[1]))
TABLE:
gm_construct:
1 = -1303.524902 167.472397 -44.081600
2 = 1250.890137 331.746185 -44.081600
3 = 674.012085 223.775604 -32.148102
TABLE[1]:
nil