如何在C#中解析JSON对象

Rah*_*put 5 c# asp.net-mvc json.net

我正在关注JSON数据

[{"id":"1","text":"System Admin","target":{"jQuery1710835279177001846":12},"checked":true,"state":"open"},
{"id":"2","text":"HRMS","target":{"jQuery1710835279177001846":34},"checked":false,"state":"open"},
{"id":"3","text":"SDBMS","target":{"jQuery1710835279177001846":42},"checked":false},
{"id":"8","text":"Admin","target":{"jQuery1710835279177001846":43},"checked":false},
{"id":"9","text":"My test Admin","target":{"jQuery1710835279177001846":44},"checked":false,"state":"open"},
{"id":"24","text":"ModuleName","target":{"jQuery1710835279177001846":46},"checked":false,"state":"open"}]
Run Code Online (Sandbox Code Playgroud)

尝试使用强类型使用Json.Net解析

这是我的财产类

public class testclass
    {
        public string id { get; set; }
        public string text { get; set; }
        public string @checked { get; set; }
        public string state { get; set; }
        public target jQuery1710835279177001846 { get; set; }

    }
    public class testclass2
    {
        public List<testclass> testclass1 { get; set; }

    }

    public class target
    {
        public string jQuery1710835279177001846 { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

在这里我试图访问我得到异常的数据

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'QuexstERP.Web.UI.Areas.SysAdmin.Controllers.testclass' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
Run Code Online (Sandbox Code Playgroud)

我的控制器代码看起来像

 public void Test(string Name, object modeldata)
        {

            var obj = JsonConvert.DeserializeObject<testclass>(Name);

        }
Run Code Online (Sandbox Code Playgroud)

知道如何在C#中解决这个问题

Sac*_*hin 8

你的Json字符串看起来有序列化的数组对象,因为它包含[ ].这意味着你有一个Json字符串,它是在数组对象序列化后形成的.所以你需要反序列化为数组对象,所以试试这个

var obj = JsonConvert.DeserializeObject<List<testclass>>(jsonString);
Run Code Online (Sandbox Code Playgroud)