Newtonsoft.Json.JsonReaderException:当前 JsonReader 项不是对象:EndObject

问题描述 投票:0回答:0

以下是自定义 Json 转换器中的 ReadJson 覆盖方法,该方法正在我尝试使用的项目之一中使用:

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            string rawJson = null;
            JObject jObject = null;            

            try
            {
         
                 
                if (!(reader.TokenType != JsonToken.Null) ) return null;                 
                     
                    jObject =JObject.Load(reader);

                    CustomerObject target = default(CustomerObject);
                    if (jObject != null)
                    {
                        if (jObject["$ref"] != null)
                        {
                            string id = (jObject["$ref"] as JValue).Value as string;
                            target = (CustomerObject )serializer.ReferenceResolver.ResolveReference(serializer, id);
                        }
                        else
                        {
                            target = Create(objectType, jObject);
                            rawJson = jObject.ToString();

                            serializer.Populate(jObject.CreateReader(), target);

                            ResumeDirtyTracking(target);
                        }
                    }                 
                return target;
                
            }

但是在

jObject =JObject.Load(reader);
行,它为这样显示的令牌抛出异常
 :{{ "$id": null, "$values": null }}
读者 TokenType 在此令牌和路径中为“EndObject”:Customer.Added

准确的错误描述:

从 JsonReader 读取 JObject 时出错。当前 JsonReader 项不是对象:EndObject。路径 'Customer.Added',

有人可以帮我如何将这一行序列化为 Jobject ..我在这里缺少什么

如果 TokenType 是 endobject,我尝试跳过 Jobject.Load,并添加一行以使用 reader.Read() 进一步读取 Json,但这显然不起作用。 还尝试将 Jobject.Laod 更改为 Jobject.Parse 但这也没有用。

c# json json.net json-deserialization jsonconverter
© www.soinside.com 2019 - 2024. All rights reserved.