0

我是 C# 编码和序列化 Json 对象的新手。

我正在尝试使用 Json.net 加载保存为 json 对象的文件(“filename.json”)

下面是我试图用来加载它的代码。我在这里查看了加载 Json 对象的最佳方法,这似乎是共识。我试图加载的对象稍后在类中定义。我使用http://json2csharp.com/工具从 Json 文件创建一个类。

List<DashboardList> dashboardList = null;
        DashboardList db = new DashboardList();
        try
        {
            StreamReader sr = new StreamReader(FileLoc);
            string jsonString = sr.ReadToEnd();
            db = JsonConvert.DeserializeObject<DashboardList>(jsonString);

Json 对象如下。

{
  "DashboardList": {
"Dashboard": {
  "id": "1",
  "title": "Executive Dashboard",
  "description": "Generic Dashboard",
  "allowableMemberTypes": "",
  "Pages": {
    "Page": [

Json 的其余部分很长,可能并不重要。

当我运行代码时,我得到一个带有空字段的仪表板对象。

编辑:

 public class Dashboard
    {
        public string id { get; set; }
        public string title { get; set; }
        public string description { get; set; }
        public string allowableMemberTypes { get; set; }
        public Pages Pages { get; set; }
    }

    public class DashboardList
    {
        public Dashboard Dashboard { get; set; }
    }    
4

1 回答 1

0

为后代:

        RootObject ro = new RootObject();
         try
        {

            StreamReader sr = new StreamReader(FileLoc);
            string jsonString = sr.ReadToEnd();
            JavaScriptSerializer ser = new JavaScriptSerializer();
            ro = ser.Deserialize<RootObject>(jsonString);


       }

您需要在 .net 4.0 中添加对 system.web.extensions 的引用,这是在程序文件(x86)> 参考程序集> 框架> system.web.extensions.dll 中,您需要确保您只使用常规 4.0框架不是 4.0 客户端

于 2013-09-04T16:56:53.420 回答