如何正确解析 JSON table 以用于值函数?
How to properly parse a JSON table for use in a Value function?
我曾多次使用 httpservice 成功地从我的服务器中提取信息以用于我正在开发的 Roblox 游戏,但都惨遭失败。经过多次失败的努力后,我发现主要问题是我无法解析 table 以从 JSON table 中获取我需要的值,也就是说,我认为,为什么我无法让货币处理程序脚本接受该值。
我有一个 Ubuntu 服务器服务和一个叫做 Putty 的东西来访问它。
我已经做了足够多的试验和错误,相信处理程序脚本按预期工作,除了没有正确接收来自下一个脚本的信息。
game.Players.PlayerAdded:Connect(function(player)
local value = Instance.new("NumberValue", player)
value.Name = "Currency"
value.Value = 0
local HttpService = game:GetService("HttpService")
local userID = '0' --player.UserId
local wallet = "http://x8/"
local mining = wallet..userID
local response = HttpService:GetAsync(mining, HttpService:JSONDecode(), Enum.HttpContentType.ApplicationJson)
local a,b,c,d = table.remove(response)
local function f()
value.Value = 1
end
end)
我也有一个 localscript 运行 看起来像这样。
local player = game.Players.LocalPlayer
player:WaitForChild("Currency").changed:Connect(function(value)
script.Parent.Currency.Text = "D "..value
end)
script.Parent.Currency.Text = "D "..player:WaitForChild("Currency").Value
这是在阅读了 Piglet 的各种手册之后。
我不是专业的程序员或软件工程师。除了从 youtube 和一些在线教程中收集到的知识外,我对编程了解不多。我已尽我所能利用这些资源。具有讽刺意味的是,我认为这应该是我实现获得可运行的 Roblox 游戏的目标的最后一个主要障碍。我用过 Wiki 和 Roblox 开发者论坛,但我并不完全理解它们。
我能够使用上面的代码生成 table,但 table.remove 仍然无法正常工作。我会尝试纠正这个问题,这是我想出的代码
local mining = wallet..userID
local response
local data
response = HttpService:GetAsync(mining)
data = HttpService:JSONDecode(response, Enum.HttpContentType.ApplicationJson)
local a = Instance.new("NumberValue", player)
a = (data["result"]["amount"])
print(data["result"]["amount"])
print(a)
value.Value = a
print(value.Value)
return value
end)
不确定这是否是正确的做事方式,但它奏效了。
我曾多次使用 httpservice 成功地从我的服务器中提取信息以用于我正在开发的 Roblox 游戏,但都惨遭失败。经过多次失败的努力后,我发现主要问题是我无法解析 table 以从 JSON table 中获取我需要的值,也就是说,我认为,为什么我无法让货币处理程序脚本接受该值。
我有一个 Ubuntu 服务器服务和一个叫做 Putty 的东西来访问它。
我已经做了足够多的试验和错误,相信处理程序脚本按预期工作,除了没有正确接收来自下一个脚本的信息。
game.Players.PlayerAdded:Connect(function(player)
local value = Instance.new("NumberValue", player)
value.Name = "Currency"
value.Value = 0
local HttpService = game:GetService("HttpService")
local userID = '0' --player.UserId
local wallet = "http://x8/"
local mining = wallet..userID
local response = HttpService:GetAsync(mining, HttpService:JSONDecode(), Enum.HttpContentType.ApplicationJson)
local a,b,c,d = table.remove(response)
local function f()
value.Value = 1
end
end)
我也有一个 localscript 运行 看起来像这样。
local player = game.Players.LocalPlayer
player:WaitForChild("Currency").changed:Connect(function(value)
script.Parent.Currency.Text = "D "..value
end)
script.Parent.Currency.Text = "D "..player:WaitForChild("Currency").Value
这是在阅读了 Piglet 的各种手册之后。
我不是专业的程序员或软件工程师。除了从 youtube 和一些在线教程中收集到的知识外,我对编程了解不多。我已尽我所能利用这些资源。具有讽刺意味的是,我认为这应该是我实现获得可运行的 Roblox 游戏的目标的最后一个主要障碍。我用过 Wiki 和 Roblox 开发者论坛,但我并不完全理解它们。
我能够使用上面的代码生成 table,但 table.remove 仍然无法正常工作。我会尝试纠正这个问题,这是我想出的代码
local mining = wallet..userID
local response
local data
response = HttpService:GetAsync(mining)
data = HttpService:JSONDecode(response, Enum.HttpContentType.ApplicationJson)
local a = Instance.new("NumberValue", player)
a = (data["result"]["amount"])
print(data["result"]["amount"])
print(a)
value.Value = a
print(value.Value)
return value
end)
不确定这是否是正确的做事方式,但它奏效了。