【发布时间】:2021-05-11 03:33:39
【问题描述】:
var docToJson = doc.ToJson<BsonDocument>();
story Featured = JsonConvert.DeserializeObject<story>(docToJson);
public class story
{
[JsonProperty("_id"), JsonConverter(typeof(ObjectIdConverter))]
public ObjectId Id { get; set; }
....
public class ObjectIdConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, value.ToString());
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
JsonSerializer serializer)
{
JToken token = JToken.Load(reader);
return new ObjectId(token.ToObject<string>());
}
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(ObjectId));
}
}
}
我被困住了,我已经尝试了六种方法,但我仍然在使用 json 阅读器时遇到同样的错误,有人有什么想法吗?
上次尝试这个来自SO*
JsonReader 异常
解析值时遇到意外字符:O. 路径“_id”,第 1 行,位置 10。
JSON 字符串如下所示:
{
"_id": ObjectId("5378f94a3513fa3374be7e20"),
"cc": "GB",
"userName": "xyz ",
"userImage": "img/16.jpg",
"createdDate": ISODate("2014-05-18T18:17:46.983Z"),
"Headling": "Veniam, amet, incidunt veniam, ipsam nostrud natus exercitationem consectetur, eos dolorem. ",
"subheading": "Veniam, amet, incidunt veniam, ipsam nostrud. "
}
【问题讨论】:
-
请发布您尝试反序列化的 JSON 字符串。
-
嗨,它来自数据库,看起来像这样 { "_id" : ObjectId("5378f94a3513fa3374be7e20"), "cc" : "GB", "userName" : "xyz ", "userImage" : "img/16.jpg", "createdDate" : ISODate("2014-05-18T18:17:46.983Z"), "Headling" : "Veniam, amet, incidunt veniam, ipsam nostrud natus exercitationem consectetur, eos dolorem。 ", "副标题" : "Veniam, amet, 事件 veniam, ipsam nostrud。" }
标签: c# mongodb azure json.net deserialization