出于我的需要,我决定继续执行以下自定义JsonConverter:
class JsonConverterObjectToString : JsonConverter { public override bool CanConvert(Type objectType) { return (objectType == typeof(JTokenType)); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JToken token = JToken.Load(reader); if (token.Type == JTokenType.Object) { return token.ToString(); } return null; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { //serializer.Serialize(writer, value); //serialize as actual JSON and not string data var token = JToken.Parse(value.ToString()); writer.WriteToken(token.CreateReader()); } }我尚未对上述实现进行彻底的测试,并且我对Canconvert方法并不完全确定,因为它似乎从未被调用过,但是它似乎进行了转换,然后允许我将反序列化的类存储到MongoDB中,并且JSON数据是被存储一个字符串。所以目前一切都很好。
更新:修改了WriteJson方法以将其序列化回JSON对象(而不是字符串)。



