将表编码为json时出现问题(应为字符串索引,但获得了编号)

vh0rcniy  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(86)

我有下表:
local my_table = {data = {{value1 = "test1", value2 = "test2"}, {value3 = "test3", value4 = "test4"}}}
我想把这个表转换成json格式并保存到一个文件。但是,当我尝试

json.encode(my_table)

出现错误:* "encode"的参数#1错误(["data"]=〉应为字符串索引,获得的是数字)*
我希望json:

{
   "data":[
      {
         "value1":"test1",
         "value2":"test2"
      },
      {
         "value3":"test3",
         "value4":"test4"
      }
   ]
}
xmd2e60i

xmd2e60i1#

真管用!

local json = require'json'
local my_table = {data = {{value1 = "test1", value2 = "test2"}, {value3 = "test3", value4 = "test4"}}}
print(json.encode(my_table))  -- {"data":[{"value1":"test1","value2":"test2"},{"value4":"test4","value3":"test3"}]}

我使用的是this repo
您正在使用的实现可能需要特殊的语法来将Lua表视为JSON数组而不是JSON字典。
我所使用的实现会自动做出这个决定(是数组还是字典)。

相关问题