c# - Deserialize nested json string -
my json data this
"{\"total_entries\":2,\"current_page\":1,\"total_pages\":1,\"per_page\":2,\"items\":[{\"workspace\":{\"background_color\":\"#ffedd3\",\"data_room\":false,\"default_sort\":\"alphabetical\",\"default_view\":\"list\",\"id\":330201,\"name\":\"myworkspacenew\",\"updated_at\":\"2013-05-08t05:54:25-07:00\",\"root_folder_id\":166325721,\"owner_id\":991101,\"is_owner\":true,\"effective_role\":\"administrator\",\"audit_trail\":true,\"require_agreement\":false,\"agreement_accepted\":false}},{\"workspace\":{\"background_color\":\"white\",\"data_room\":false,\"default_sort\":\"alphabetical\",\"default_view\":\"list\",\"id\":343316,\"name\":\"qqq\",\"updated_at\":\"2013-05-12t22:34:08-07:00\",\"root_folder_id\":179855446,\"owner_id\":991101,\"is_owner\":true,\"effective_role\":\"administrator\",\"audit_trail\":true,\"require_agreement\":false,\"agreement_accepted\":false}}]}" i want deserilize json data c# code like
workspacename data = new system.web.script.serialization.javascriptserializer().deserialize<workspacename>(responsetext); i want deserialize data getting total_entries,items count,per_page inside workspace getting every thing null
public class workspacename { public int total_entries { get; set; }//getting value public int current_page { get; set; }//getting value public int total_pages { get; set; }//getting value public int per_page { get; set; }//getting value public list<items> items { get; set; }// items count 2 value null. } public class items { // public list<workspace> workspace { get; set; } public string background_color { get; set; } public bool data_room { get; set; } public string default_sort { get; set; } public string default_view { get; set; } public int id { get; set; } public string name { get; set; } public datetime updated_at { get; set; } public int root_folder_id { get; set; } public int owner_id { get; set; } public bool is_owner { get; set; } public string effective_role { get; set; } public bool audit_trail { get; set; } public bool require_agreement { get; set; } public bool agreement_accepted { get; set; } }
use datacontractjsonserializer instead :
you should define data classes attributes :
[datacontract] public class workspacename { [datamember] public int total_entries { get; set; }//getting value [datamember] public int current_page { get; set; }//getting value ... and
[datacontract] public class items { [datamember] public string background_color { get; set; } [datamember] public bool data_room { get; set; } ... then deserilize json object should :
var serializer = new datacontractjsonserializer(typeof(workspacename)); using (var stream = new memorystream()) { var asbytes = encoding.utf8.getbytes(jsonobjectstring); stream.write(asbytes, 0, asbytes.length); stream.flush(); stream.seek(0, seekorigin.begin); var yourdeserializedworkspacename= (workspacename)serializer.readobject(stream); }
Comments
Post a Comment