Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从.lua文件解析/读取特定数据?_Java_Lua - Fatal编程技术网

Java 如何从.lua文件解析/读取特定数据?

Java 如何从.lua文件解析/读取特定数据?,java,lua,Java,Lua,我正在尝试从文件.lua读取数据。 file.lua包含: 设置={ { [“msg”]=“ббббббб/бббб”, [“aut”]=“Lightmur”, [“cha”]=“5, }, -- [1] { [“msg”]=“цццааааааааааааааааааа, [“aut”]=“自动模式”, [“cha”]=“5, }, -- [2] { [“msg”]=“ССА25аааааа/ааа/аааа/1072, [“aut”]=“Dralo”, [“cha”]=“5, }, -- [

我正在尝试从文件.lua读取数据。
file.lua包含:

设置={
{
[“msg”]=“ббббббб/бббб”,
[“aut”]=“Lightmur”,
[“cha”]=“5,
}, -- [1]
{
[“msg”]=“цццааааааааааааааааааа,
[“aut”]=“自动模式”,
[“cha”]=“5,
}, -- [2]
{
[“msg”]=“ССА25аааааа/ааа/аааа/1072,
[“aut”]=“Dralo”,
[“cha”]=“5,
}, -- [3]
{
[“msg”]=“ббббббб/бббб”,
[“aut”]=“Lightmur”,
[“cha”]=“5,
}, -- [4]
{
[“msg”]=“Пааиааааааааааааааааафаааааа,
[“aut”]=“Ааааа”,
[“cha”]=“2.Пцццц:Гццц”,
}, -- [5]
}
如何使用java代码读取此文件? 其中设置是消息的完整日志msg-消息,aut-消息作者,cha-消息频道
这就是我试图使用的:我的
pom.xml
、java代码和运行结果


com.googlecode.json-simple
简单json
1.1.1
JSONParser-JSONParser=new-JSONParser();
try(FileReader=newfilereader(filePath))
{
//读取JSON文件
objectobj=jsonParser.parse(reader);
JSONArray员工列表=(JSONArray)obj;
系统输出打印LN(员工列表);
//遍历employee数组
//forEach(emp->parseEmployeeObject((JSONObject)emp));
} 
//运行结果:
位置2处出现意外字符。
位于org.json.simple.parser.Yylex.Yylex(Yylex.java:610)
位于org.json.simple.parser.JSONParser.nextToken(JSONParser.java:269)
位于org.json.simple.parser.JSONParser.parse(JSONParser.java:118)
位于org.json.simple.parser.JSONParser.parse(JSONParser.java:92)
在Main.Main(Main.java:21)
我想知道我应该用什么。因为在我读了这个文件之后,我想通过调用
getMsg()
方法来检查变量msg中的内容
我不能在一个字符串中读取此内容,但如何处理数据

File myObj=新文件(filePath);
扫描仪myReader=新扫描仪(myObj);
while(myReader.hasNextLine()){
String data=myReader.nextLine();
系统输出打印项次(数据);
}
myReader.close();
//结果
设置={
{
[“msg”]=“ббббббб/бббб”,
[“aut”]=“Lightmur”,
[“cha”]=“5,
}, -- [1]
{
[“msg”]=“цццааааааааааааааааааа,
[“aut”]=“自动模式”,
[“cha”]=“5,
}, -- [2]
{
[“msg”]=“ССА25аааааа/ааа/аааа/1072,
[“aut”]=“Dralo”,
[“cha”]=“5,
}, -- [3]
{
[“msg”]=“ббббббб/бббб”,
[“aut”]=“Lightmur”,
[“cha”]=“5,
}, -- [4]
{
[“msg”]=“Пааиааааааааааааааааафаааааа,
[“aut”]=“Ааааа”,
[“cha”]=“2.Пцццц:Гццц”,
}, -- [5]
}
进程已完成,退出代码为0

Lua是一种编程语言,而不是数据语言,因此不应该解析文件,而是执行文件

您可以编写一个Lua脚本,以执行该脚本并将其编码为JSON

  • 首先使用Lua解释器进行安装(luarocks for windows附带该解释器,如果在linux上,请使用软件包管理器安装
    Lua
    luarocks
  • 安装库以将数据编码为JSON:
luarock安装json-lua
  • script.Lua中编写以下Lua脚本:
  • script.lua
    file.lua
    放在同一文件夹中,然后从那里运行
    script.lua
lua script.lua
  • 数据应该在文件
    file.JSON
    中编码成JSON,现在您可以在Java下解析它了

为什么要用JSON解析器读取lua文件?它们不一样。您的文件是lua脚本文件。要使用Gson,您的文件必须遵循JSON约定。这并不是我试图改进这个问题的标题,因为你不是问如何读取任何文件,而是问如何从lua文件中读取数据。“不是数据语言”——Lua被认为是一种数据描述语言。Lua About网页的顶部写着:Lua中的编程说“自1993年创建以来,数据描述一直是Lua的主要应用之一。”我的意思是它不是XML、JSON、HTML等语言。。你建议编辑什么?
local JSON = require("JSON") --The JSON library

local source = "file.lua"
local destination = "file.json"

dofile(source)

--Now after executing the file.lua script, the data has been stored in the global table Settings.

--Encode into JSON data.
local jsonData = JSON:encode_pretty(Settings)

--Open the destination file for writing.
local file = assert(io.open(destination, "w"))

--Write the JSON data.
assert(file:write(jsonData))

--Close the file.
file:close()

print("Wrote file.json successfully!")