JsonConvert.DeserializeObject <t>正在加载对象类型但没有加载Json字段</t>

时间:2013-09-04 15:29:22

标签: c# json

我不熟悉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很长,可能并不重要。

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

编辑:

 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; }
    }    

1 个答案:

答案 0 :(得分: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)&gt;中。参考组件&gt;框架&GT; system.web.extensions.dll,你需要确保你只使用常规4.0框架而不是4.0客户端