我必须将给定的JSON字符串读入C#对象。到目前为止这么好,但这种情况对我来说很特别。 JSON字符串包含2个实体。一个是平面对象,第二个是列表,至少符合逻辑,但不是真正的JSON。我希望你能帮我找到解决办法。JSON将不同的命名对象反序列化为一个集合c#
为了更好地解释它,我会告诉你我的JSON输入的一部分:
{
"game":{"GameMode":"1","IsNetworkMode":"1","NbMaxPlayer":"12","GameState":"1"},
"player_56":{"PlayerUserId":"137187","PlayerIALevel":"-1","PlayerObserver":"0"},
"player_7":{"PlayerUserId":"3440","PlayerIALevel":"-1","PlayerObserver":"0"}
}
我想给玩家的实体序列化到这种类型的对象的集合。问题在于它们实际上不是以JSON形式存储为集合。他们的动态名称为“player_56”,并且数字不是像“1,2,3”这样的任何逻辑顺序。
目前我正在使用DataContractJsonSerializer
来完成此任务。
[DataContract]
public class AlbReplay
{
[DataMember(Name = "game")]
public AlbGame Game { get; set; }
[DataMember(Name = "player")]
public List<AlbPlayer> Players { get; set; }
}
有什么建议吗?
我已经试过这个至今: [DataContract] 公开课AlbReplay { [DataMember(Name =“game”)] public AlbGame Game {get;组; } [DataMember(Name =“player”)] public List Players {get;组; } } –
Ian
你对这个JSON有控制吗?理想情况下,您需要获得一系列球员。动态属性不是很有帮助!你可以序列化为一个动态的对象,只需查找以“player”开头的属性,但这不是很好。 – pingoo
不幸的是,没有。如果没有其他的选择,我必须去这样的事情,到目前为止,谢谢! – Ian