Как преобразовать строку json в список?
Я использую почтовую службу rest в своем приложении c#, которое отправляет результат jsonstring. Я хочу преобразовать этот результат в список, но он дает ошибку.
выходная строка:-
{"SearchDocumentResult":"[{\"ContextType\":\"ddd\",\"ContextIDPrimary\":\"TestContextP\",\"ContextIDSecondary\":\"TestContextS\",\"ContextIDTertiary\":\"\",\"RequirementID\":\"17\",\"Source\":\"image\",\"DocumentName\":\"4.pdf\",\"DocumentImage\":\"\",\"ErrorCode\":\"0\",\"ErrorDescription\":\"\",\"createdBy\":\"\",\"createdDate\":\"12-07-2017 15:39:57\"},{\"ContextType\":\"ddd\",\"ContextIDPrimary\":\"TestContextP\",\"ContextIDSecondary\":\"TestContextS\",\"ContextIDTertiary\":\"\",\"RequirementID\":\"18\",\"Source\":\"image\",\"DocumentName\":\"4.pdf\",\"DocumentImage\":\"\",\"ErrorCode\":\"0\",\"ErrorDescription\":\"\",\"createdBy\":\"\",\"createdDate\":\"12-07-2017 15:42:07\"}]"}
Я получаю выше вывод в виде строки json . Я не могу преобразовать приведенную выше строку в список. Может ли кто-нибудь помочь мне в этом?
Что я уже пробовал:
public class test { public string ContextType { get; set; } public string ContextIDPrimary { get; set; } public string ContextIDSecondary { get; set; } public string ContextIDTertiary { get; set; } public string Source{get;set;} public string DocumentID { get; set; } }
public class JsonHelper { /// <summary> /// JSON Serialization /// </summary> public static string JsonSerializer<T>(T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, t); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } /// <summary> /// JSON Deserialization /// </summary> public static T JsonDeserialize<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T obj = (T)ser.ReadObject(ms); return obj; } }
public class RootObject { // public List<SearchDocumentResult> SearchDocumentResult { get; set; } public IEnumerable<SearchDocumentResult> SearchDocumentResult { get; set; } //public List<Person> People1 { get; set; } }
protected void Button1_Click(object sender, EventArgs e) { test t = new test { ContextType = "ddd", ContextIDPrimary = "", ContextIDSecondary = "", ContextIDTertiary = " ", Source = "", DocumentID = "" }; DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(test)); MemoryStream mem = new MemoryStream(); ser.WriteObject(mem, t); string data = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length); WebClient webClient = new WebClient(); webClient.Headers["Content-type"] = "application/json"; webClient.Encoding = Encoding.UTF8; string result = webClient.UploadString("http://192.168.0.151:222/Service1.svc/SearchDocument", "POST", data); var result11 = JsonHelper.JsonDeserialize<RootObject1>(result); //JavaScriptSerializer serializer = new JavaScriptSerializer(); //serializer.MaxJsonLength = Int32.MaxValue; // var a = serializer.Deserialize(result, typeof(object)); // string json = "{\"People\":[{\"FirstName\":\"Hans\",\"LastName\":\"Olo\"},{\"FirstName\":\"Jimmy\",\"LastName\":\"Crackedcorn\"}]}"; //// var result11 = JsonHelper.JsonDeserialize<RootObject1>(json); // var firstNames = result11.People.Select(p => p.FirstName).ToList(); // var lastNames = result11.People.Select(p => p.LastName).ToList(); }