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. "
}
_id
プロパティの値がJSON標準に準拠していないため、このエラーが発生します(JSON.orgを参照)。JSON値は次のいずれかである必要があります。
"
){
、}
)[
、]
)true
、false
またはnull
値ObjectId("5378f94a3513fa3374be7e20")
は関数のようですが、無効です。値ISODate("2014-05-18T18:17:46.983Z")
にも同じ問題があります。JSON.netを使用して解析する場合は、標準を満たすようにJSONを何らかの方法で変更する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加