如何在 ReadJson 方法中从 JsonReader 获取所有字符串?

ozz*_*ozz 4 c# json.net

这是我的自定义 json 转换器的一部分:

 public class ExpandoConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return typeof(Expando).IsAssignableFrom(objectType);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType == JsonToken.Null)
            return null;

        /// How can I get all json string from reader at this point like that:
        /// string js= reader.ReadStringToEnd();
Run Code Online (Sandbox Code Playgroud)

我不想获取所有序列化字符串,我需要转换器目标的数据。

前任:

{................................ {"Id":3,"Name":"MyExpando1"} }

小智 5

我的做法是使用 JObject 并将读取器加载到 JObject 中,如下所示:

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        JObject jObject = JObject.Load(reader);
        var dictionary = serializer.Deserialize<Dictionary<string, object>>(jObject);
    }
Run Code Online (Sandbox Code Playgroud)