我正在使用MongoDB和C#记录游戏玩家的坐标。我的收藏集中包含遵循以下结构的文档:
{
"_id" : ObjectId("5d12bc34c45f0a1a685db405"),
"Coordinates" : [
{
"x" : -5.75,
"y" : -0.47392401099205
},
{
"x" : -5.75,
"y" : -0.481772005558014
}],
"Player" : "Player 1"
}
但是我在序列化此信息时遇到了一些问题,我尝试过类似的事情:
public class Scores {
[MongoDB.Bson.Serialization.Attributes.BsonElement]
public ObjectId _id { get; set; }
public Object[] Coordinates { get; set; }
public float x { get; set; }
public float y { get; set; }
public string Player { get; set; }
}
...
foreach (var document in scoreCollection.Find(new QueryDocument("Player", "Player1"))){
Debug.Log ("Get one info: \n" + document);
}
但是我一直收到此错误:
元素“ x”与类的任何字段或属性都不匹配 UnityEngine.Object。 MongoDB.Bson.Serialization.BsonClassMapSerializer.Deserialize
如何修复我的代码?
答案 0 :(得分:0)
创建其他模型来存储坐标
public class Coordinate {
public float x { get; set; }
public float y { get; set; }
}
并用它们的数组更新模型
public class Scores {
[MongoDB.Bson.Serialization.Attributes.BsonElement]
public ObjectId _id { get; set; }
public Coordinate[] Coordinates { get; set; }
public string Player { get; set; }
}
现在,它应该与给定的JSON结构匹配。