C#读取Json

tanshihou 2015-02-27 10:36:42
现在我想用C#解析Json格式的文件

Json的格式是这样的
{
a: "1",
b : [
{
c : 0,
d : "FIELDNAME",
},
{
c : 1,
d : "FIELDNAME",
},
]
}

定义了两个类
public class JsonInfo
{
public string a { get; set; }
public List<SubInfo> subInfo { get; set; }

}
public class SubInfo
{
public int c{ get; set; }
public string d{ get; set; }
}


用这个方法解析的时候
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
T t = o as T;
return t;

JsonInfo的a里面可以正确解析,但是Lsit的b总是null

请问这个要怎么处理呢
谢谢了
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanshihou 2015-02-27
  • 打赏
  • 举报
回复
引用 4 楼 daonidedie 的回复:
public class JsonInfo { public string a { get; set; } public List<SubInfo> subInfo { get; set; } } 改成下面代码'
  public class JsonInfo
    {
        public string a { get; set; }
        public List<SubInfo> b{ get; set; }//这里是重点
        
    }
谢谢,谢谢,原来名字得一一对应呀 太谢谢了
sunny906 2015-02-27
  • 打赏
  • 举报
回复
ls正解,要注意字段名称要跟json的字段名称相匹配 或者这样写也可以:

            JObject jo = (JObject)JsonConvert.DeserializeObject(json);
            Console.WriteLine(jo["a"].ToString());
            foreach (JToken token in jo["b"])
            {
                Console.WriteLine(token["c"].ToString());
                Console.WriteLine(token["d"].ToString());
            }
生财 2015-02-27
  • 打赏
  • 举报
回复
public class JsonInfo { public string a { get; set; } public List<SubInfo> subInfo { get; set; } } 改成下面代码'
  public class JsonInfo
    {
        public string a { get; set; }
        public List<SubInfo> b{ get; set; }//这里是重点
        
    }
tanshihou 2015-02-27
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:

return Newtonsoft.Json.JsonConvert.DeserializeObject<JsonInfo>(json);
试了一下还是一样 public string a { get; set; } 这个a可以正确读出来 public List<SubInfo> subInfo { get; set; } 这个List还是null
  • 打赏
  • 举报
回复
如1L,用Newtonsoft的json反序列化吧
by_封爱 版主 2015-02-27
  • 打赏
  • 举报
回复

return Newtonsoft.Json.JsonConvert.DeserializeObject<JsonInfo>(json);

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧