【发布时间】:2019-03-10 00:37:41
【问题描述】:
谁能告诉我如何使用另一个 json 文件的路径或 json 对象反序列化 json 对象?
我正在尝试制作一个完全由配置文件构成的游戏。
基本上我会选择这两个...
{
"LevelConfig" : {
"SkillGain" : 0.01,
"MagicGain" : 0.01,
"XpScale" : 50.0,
"HpScale" : 0.01,
"MpScale" : 0.01
}
}
or
{
"LevelConfig" : "../Level.level" (only returns json object if file exists else it tries to return string)
}
并将它们转换成这些
public class JLevel
{
public float SkillGain { get; set; }
public float MagicGain { get; set; }
public float XpScale { get; set; }
public float HpScale { get; set; }
public float MpScale { get; set; }
}
public class JEntity
{
public string Name { get; set; }
public int Hp { get; set; }
public int Mp { get; set; }
public int Xp { get; set; }
public JLevel LevelConfig { get; set; }
public JColor ColorConfig { get; set; }
public JPhysics PhysicsConfig { get; set; }
}
class Entity
{
public Entity Load(string filename)
{
return ???;
}
public void Save(string filename)
{
???;
}
}
现在我知道我可以使用 JsonConvert.DeserializeObject() 但这不会检查 json 路径。
【问题讨论】:
-
它不是关于反序列化 json,而是如何以接受字符串路径作为对象的方式对其进行反序列化。
-
File.ReadAllText可能是您所追求的。 -
这可行,但我更倾向于自定义反序列化器。该方法需要我搜索它
标签: c# json deserialization