使用Newtonsoft.Json反序列化JSON时遇JsonReaderException错误求助
问题原因与解决方法
错误原因
你代码里的反序列化逻辑多了一层不必要的嵌套:
- 你读取的JSON文件内容是直接的JSON对象(
{"Valid": true}),但代码里先调用JsonConvert.DeserializeObject<string>尝试把它解析成字符串——这个方法仅适用于解析被双引号包裹的JSON字符串(比如"{\"Valid\": true}"),遇到{开头的对象时自然会抛出解析异常。
修复后的代码
直接跳过多余的字符串解析步骤,将读取到的JSON内容直接反序列化为Account对象即可:
public static void JsonDeserializeTest(Type datatype, string filePath) { string jsonContent = File.ReadAllText(filePath); Account account = JsonConvert.DeserializeObject<Account>(jsonContent); }
补充说明
你的Account类定义完全没问题,构造函数里默认设置Valid = true不会影响反序列化结果,JSON中的true值会正常覆盖这个默认值。
内容的提问来源于stack exchange,提问作者Smirti
相关产品推荐
相关产品推荐

