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

请问这个要怎么处理呢
谢谢了
...全文
107 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);
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 Visual Studio (VS) 中,C# 项目读取 JSON 配置文件是一项常见且重要的任务。本文将详细讲解如何在 VS 中通过 C# 项目读取 JSON 配置文件。 在软件开发过程中,配置文件是不可或缺的一部分,它存储了应用程序的各种设置和参数。JSON 配置文件因其简洁性和易读性而被广泛应用于存储应用程序的配置信息。在 C# 项目中,读取 JSON 配置文件是确保应用程序正常运行的关键步骤。 在 C# 项目中,ConfigurationBuilder 是读取 JSON 配置文件的常用方法之一。它是 .NET Core 提供的一个组件,专门用于读取配置文件。以下是一个简单的示例代码: 在上述代码中,我们首先创建了一个 ConfigurationBuilder 对象,并通过 SetBasePath 方法设置了配置文件的基本路径。接着,使用 AddJsonFile 方法添加了 JSON 配置文件。最后,通过 Build 方法构建了一个 IConfiguration 对象,从而能够读取配置文件中的值。 在示例代码中,我们通过 IConfiguration 对象读取了配置文件中的数据。具体来说,可以使用 indexer 语法来获取配置文件中的值,例如: 上述代码展示了如何读取配置文件中的连接字符串、名称和 URL 等信息。 在实际开发中,读取 JSON 配置文件的方法可以应用于多种场景,例如读取数据库连接字符串、应用程序的设置以及日志配置等。通过这种方式,可以灵活地管理应用程序的配置信息,而无需修改代码。 本文介绍了在 VS 中使用 C# 项目读取 JSON 配置文件的方法。掌握读取 JSON 配置文件的技术对于开发高质量的应用程序至关重要。希望本文的内容能对您有所帮助。

111,120

社区成员

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

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

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