我尝试解析文件中包含的JSON对象(在Haxe中),但它无法正常工作。 当我尝试从类中的var解析JSON对象时,它工作得很好但是当JSON在文件中时并非如此,所以我尝试打开文件并获取对象里面。
感谢您的帮助!
答案 0 :(得分:8)
解析json就像一样简单。您遇到的问题可能是您使用的目标不支持访问系统上的文件(例如浏览器的JS或Flash)。
解决方案是多方面的。如果要加载配置数据,可以使用宏并执行以下操作:
haxe.Json.parse(jsonvar)
您在代码中使用:
class Config {
// path is relative to where haxe is executed
macro public static function json(path : String) {
var value = sys.io.File.getContent(path),
json = haxe.Json.parse(value);
return macro $v{json};
}
}
请注意,在这种情况下,conf在编译时初始化,并且在运行时没有加载。这意味着如果您对var conf = Config.json("myfile.json");
进行任何更改,则在重新编译之前不会看到它们。
另一种情况是您在运行时加载文件。在这种情况下,解决方案通常特定于您的目标(对于浏览器中的JS,您可能希望进行AJAX调用,对于Neko或OpenFL,您可以直接从系统加载文件,类似于之前解释的内容)。
答案 1 :(得分:1)
TJSON可以处理JSON解析:https://github.com/martamius/TJSON
var myObject = TJSON.parse(sys.io.File.getContent('filename.json'));
答案 2 :(得分:0)
我建议您将来发布代码 - 至少添加更多上下文。
您是否使用JSON parse来解析从文件中读取的字符串?