Java 如何从.lua文件解析/读取特定数据?
我正在尝试从文件.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, }, -- [
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
- 数据应该在文件
中编码成JSON,现在您可以在Java下解析它了file.JSON
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!")