C# WebRequest JSON转对象报错:预期":"或"{" 求助
解决JSON反序列化时":"或"{" expected错误
我来帮你搞定这个反序列化的问题!你遇到的":"或"{" expected错误,核心原因是你的自定义类结构和JSON里的字段类型不匹配,具体分析和解决方法如下:
问题根源
你的JSON中about字段是包含对象的数组:
"about": [{"name": "Fortnite"}]
但你在WebResult类里把about定义成了string[]类型。反序列化器原本期望读取字符串内容,结果遇到了对象的起始符号{,就会抛出":"或"{" expected的格式错误。
修正方案
你需要为about数组里的对象创建对应的实体类,然后修改WebResult的属性类型:
- 定义
about元素对应的类:
public class AboutItem { public string name { get; set; } }
- 更新
WebResult和Results类的定义:
public class WebResult { public string id { get; set; } public string name { get; set; } public string url { get; set; } // 把string[]改成List<AboutItem>或者AboutItem[],推荐用List更灵活 public List<AboutItem> about { get; set; } } public class Results { // 对应JSON里的data数组 public List<WebResult> data { get; set; } }
额外说明
你提供的JSON格式是合法的,其中的转义斜杠\/是JSON的标准写法,反序列化器(比如Newtonsoft.Json或者System.Text.Json)会自动处理,不需要手动修改。
内容的提问来源于stack exchange,提问作者Detlef D Soost
相关产品推荐
相关产品推荐

