2013-03-26 65 views
5

dữ liệu JSON Tôi nhận được sauLàm thế nào để phân tích đối tượng JSON trong C#

[{"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"}] 

mà cố gắng phân tách bằng Json.Net sử dụng mạnh mẽ gõ

này là lớp tài sản của tôi

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

và ở đây tôi đang cố gắng truy cập dữ liệu tôi đang nhận được ngoại lệ

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. 

My mã điều khiển trông giống như

public void Test(string Name, object modeldata) 
     { 

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

     } 

Bất kỳ ý tưởng làm thế nào để giải quyết vấn đề này trong C#

Trả lời

8

Chuỗi Json của bạn trông có đối tượng mảng được tuần tự hóa trong đó vì nó chứa [ ]. Nó có nghĩa là bạn có một chuỗi Json được tạo thành sau khi tuần tự hóa đối tượng mảng. Vì vậy, bạn cần phải deserialized vào đối tượng mảng, vì vậy hãy thử này

var obj = JsonConvert.DeserializeObject<List<testclass>>(jsonString); 
3

bạn có Array của TestClass. nên nó sẽ như thế này

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

lý do bạn đang sử dụng JSonConvert? trong MVC3 bạn có thể làm như thế này

return Json(yourmodel,JsonRequestBehavior.AllowGet); 
+0

tôi muốn lấy dữ liệu từ phía máy chủ –

1

đối tượng json của bạn là như thế này

{ 
     "id":"1", 
     "text":"System Admin", 
     "target":{ 
     "jQuery1710835279177001846":12 
     }, 
     "checked":true, 
     "state":"open" 
} 

Nó phải là như thế này tôi đoán

{ 
     "id":"1", 
     "text":"System Admin", 
     "jQuery1710835279177001846":12, 
     "checked":true, 
     "state":"open" 
} 
Các vấn đề liên quan