2016-09-13 1 views
0

Ich habe das JSON-Ergebnis wie folgt.JSON String zu Datentabelle

{ 
    "HTTPStatusCode":"200", 
    "objFeedBackManagmentViewModel":[ 
     { 
     "ID":2, 
     "FeedBackDetail":"Email :[email protected] Mobile :9503628985 Category :Product Request Message :lookingFor", 
     "CreateDate":"2015-09-04T13:42:45" 
     }, 
     { 
     "ID":3, 
     "FeedBackDetail":"Email :[email protected] Mobile :9503507124 Category :Product Request Message :lookingFor", 
     "CreateDate":"2015-09-04T18:06:44" 
     } 
    ] 
} 

, wie es in Datentabelle

+0

Mögliches Duplikat von [Wie wird JSON in Datatable konvertiert?] (Http://StackOverflow.com/questions/7641004/how-to-convert-json-into-datatable) Auch: http://StackOverflow.com/q/11981282/1070452 – Plutonix

+0

Keine strenge Duplizierung, da diese JSON eine untergeordnete Tabelle benötigen würde, um die Objekte in 'objFeedBackManagementViewModel' zu übernehmen. Sie würden sicherlich ein DataSet benötigen? –

Antwort

-3

zu konvertieren habe ich keine Ahnung, wie man mit Json arbeiten

könnten Sie versuchen, eine

foreach(element ele in JsonNodeList) 
{ 
} 

ich nur xml Erfahrung obwohl

Ich fand auch dieses, es könnte Ihnen helfen Convert JSON to DataTable

0

Erfordern dll refernce von Json.Net

using Newtonsoft.Json; 
var table = JsonConvert.DeserializeObject<DataTable>(jsonString); 
0

Ich denke, dass Sie das objFeedBackManagmentViewModel Modell in eine DataTable konvertieren möchten. Recht?

Also, wenn Sie this Beitrag als @Plutonix vorgeschlagen folgen, erhalten Sie die Antwort.

Zusammengefasst:

1) Zuerst Deserialize die JSON einige geeignete Klassen:

public class OKStatus{ 
    public int HTTPStatusCode {get; set;} 
    public FeedBack[] objFeedBackManagmentViewModel {get; set;} 
} 

public class FeedBack{ 
    public int ID {get; set;} 
    public string FeedBackDetail {get; set;} 
    public DateTime CreateDate {get; set;}  
} 

2) Dann die Methode setzen, die @Pravin Pawar anmutig in einem static class wie dies in der Post zur Verfügung gestellt :

public static class ExtensionMethods{ 
    public static DataTable ToDataTable<T>(this IList<T> data) 
    { 
     PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); 

     DataTable table = new DataTable(); 

     for(int i = 0 ; i < props.Count ; i++) 
     { 
      PropertyDescriptor prop = props[i]; 
      table.Columns.Add(prop.Name, prop.PropertyType); 
     } 

     object[] values = new object[props.Count]; 

     foreach (T item in data) 
     { 
      for (int i = 0; i < values.Length; i++) 
      { 
       values[i] = props[i].GetValue(item); 
      } 

      table.Rows.Add(values); 
     } 

     return table;   
    } 
} 

3) der Aufruf der Methode :)

var json = "{\"HTTPStatusCode\":\"200\",\"objFeedBackManagmentViewModel\":[{\"ID\":2,\"FeedBackDetail\":\"Email :[email protected] Mobile :9503628985 Category :Product Request Message :lookingFor\",\"CreateDate\":\"2015-09-04T13:42:45\"}]}"; 

var result = JsonConvert.DeserializeObject<OKStatus>(json); 

var table = result.objFeedBackManagmentViewModel.ToDataTable(); 

//table contains the datatable of the feedback model