如何使Json.stringify忽略某些类成员?
我正在使用最新的Haxe和HaxeFlixel制作一个简单的游戏原型 我有以下课程如何使Json.stringify忽略某些类成员?,json,haxe,Json,Haxe,我正在使用最新的Haxe和HaxeFlixel制作一个简单的游戏原型 我有以下课程 class GameData { public var playerHealth: Int; public var playerScore: Int; public var levelName: String; public function new(playerHealth: Int = 0, playerScore: Int = 0, levelName: Stri
class GameData
{
public var playerHealth: Int;
public var playerScore: Int;
public var levelName: String;
public function new(playerHealth: Int = 0, playerScore: Int = 0, levelName: String = "")
{
this.playerHealth = playerHealth;
this.playerScore = playerScore;
this.levelName = levelName;
}
}
我将其转换为JSON,如下所示
Json.stringify(new GameData(64, 512, "Level 1"));
有没有办法让stringify忽略某些成员?
haxe.Json
没有排除字段的机制,因此我建议使用第三方库。在这里,您可以简单地用@:jignored
注释应该忽略的字段:
@:jignored
public var levelName:String;
Json.parse()
和Json.stringify()
调用,它会带来很多不必要的开销:
var json = Json.stringify(new GameData(100, 10, "Level 1"));
var data:haxe.DynamicAccess<String> = Json.parse(json);
data.remove("levelName");
json = Json.stringify(data);
trace(json); // {"playerHealth":100,"playerScore":10}
var json=json.stringify(新游戏数据(100,10,“1级”);
var数据:haxe.DynamicAccess=Json.parse(Json);
数据。删除(“levelName”);
json=json.stringify(数据);
跟踪(json);//{“玩家健康”:100,“玩家核心”:10}
haxe.Json
没有排除字段的机制,因此我建议使用第三方库。在这里,您可以简单地用@:jignored
注释应该忽略的字段:
@:jignored
public var levelName:String;
Json.parse()
和Json.stringify()
调用,它会带来很多不必要的开销:
var json = Json.stringify(new GameData(100, 10, "Level 1"));
var data:haxe.DynamicAccess<String> = Json.parse(json);
data.remove("levelName");
json = Json.stringify(data);
trace(json); // {"playerHealth":100,"playerScore":10}
var json=json.stringify(新游戏数据(100,10,“1级”);
var数据:haxe.DynamicAccess=Json.parse(Json);
数据。删除(“levelName”);
json=json.stringify(数据);
跟踪(json);//{“玩家健康”:100,“玩家核心”:10}
根据您的具体情况,可能需要对标准库的JsonPrinter做一个稍微修改的版本-例如,在GMEdit中,我允许JSON对象有一个
hxOrder:Array
字段,如果提供该字段,它将确定打印的字段顺序,并初始化为静态数组。您可以为字段包含/排除制定类似的方案。根据您的具体情况,可能需要对standard library的JsonPrinter做一个稍微修改的版本-例如,在GMEdit中,我允许JSON对象具有一个hxOrder:Array
字段,如果提供了该字段,将确定打印的字段顺序,并初始化为静态数组。您可以为字段包含/排除制定类似的方案。没有真正考虑序列化只包含所需字段的结构,非常感谢您的帮助!我真的没有想过序列化一个只包含所需字段的结构,非常棒,谢谢你的帮助!