Mongo DB对象Id使用JSON序列化程序进行反序列化
var docToJson = doc.ToJson(); story Featured = JsonConvert.DeserializeObject(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()); } public override bool CanConvert(Type objectType) { return (objectType == typeof(ObjectId)); } } }
我被困了我已经尝试了六种方法,我仍然得到与json读者相同的错误,任何人的想法?
最后从SO *尝试过这个
JsonReaderexception
解析值时遇到意外的字符: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. " }
您收到此错误是因为_id
属性的值不符合JSON标准(请参阅JSON.org )。 JSON值必须是以下之一:
- 一个字符串(以引号开头和结尾
"
) - 一个号码
- 一个对象(以花括号
{
和}
开头和结尾) - 一个数组(以方括号
[
和]
开头和结尾) - 关键字
true
,false
或null
值ObjectId("5378f94a3513fa3374be7e20")
似乎是一个无效的函数。 值ISODate("2014-05-18T18:17:46.983Z")
具有相同的问题。 如果要使用JSON.net解析它,您将需要以某种方式更改您的JSON以满足标准。
- 应用程序抛出web.config被修改的exception,但事实并非如此
- 如何使用Azure Table Storage的单个查询检索多种类型的实体?
- 在azure色的窗户上找不到路径的一部分
- 如何从azure表存储查询中获取超过1000个实体?
- 如何在Web App Service中使用“Azure文件存储”?
- 如何在Azure Service Bus主题上删除DeadLetter消息
- 无法加载文件或程序集“Microsoft.AI.Web”或其依赖项之一。 该系统找不到指定的文件
- 发布使用python脚本的MVC应用程序
- “无限循环ASP.NET MVC和Azure Active Directory B2C