我有以下代码:
PerformHttpRequest('http://ossie.dk/API/verify.json',function(err, text, headers)
local r=json.decode(text)
for s,t in pairs(r.servers)do
print(t)
end
end,"GET","",{})
我的问题是,在从 verify.json 解码内容时,我不断收到此错误:bad argument #1 to 'strfind' (string expected, got nil) 或者试图做一个键的值不是表. 在这一点上我真的很迷茫,花了这么多时间在这件事上。我认为整个问题在于 JSON 是如何设置的。它需要是一个字符串,但也是一个表,我可以稍后将其用于我的键、值对,以便我可以从中获取所有信息。我希望这有某种意义。
脚本错误来自这里:
local function scanwhite (str, pos)
while true do
pos = strfind (str, "%S", pos)
if not pos then return nil end
local sub2 = strsub (str, pos, pos + 1)
if sub2 == "\239\187" and strsub (str, pos + 2, pos + 2) == "\191" then
-- UTF-8 Byte Order Mark
pos = pos + 3
elseif sub2 == "//" then
pos = strfind (str, "[\n\r]", pos + 2)
if not pos then return nil end
elseif sub2 == "/*" then
pos = strfind (str, "*/", pos + 2)
if not pos then return nil end
pos = pos + 2
else
return pos
end
end
end
我当前的 JSON 如下所示:
{
{ "servers":
"ip":
[
"144",
"155",
"166"
]
}
}
顺便说一句,我试过改变
r.servers
和
r.ip
然后它给出:无效向量场:ip
如果我只是这样做
for k,v in pairs(r) do
它会给我这个错误:
Table expected, got string
我使用的是 FiveM 的 JSON 库。
如果您有任何问题或不明白我的意思,请随时在评论中提问。