2013-02-10 2 views
0

"Datatable", "Datatable"콘텐츠 idstudent, 평균, 이름, 이름 및 날짜,이 "Datatable"내용이 더 많은 행을 반환합니다.Newtonsoft에서 json으로 값을 변환하는 방법은 무엇입니까?

DataTable row = mn.selectProgram("programStudent", attributes); 
       JsonTrans responce = new JsonTrans(); 
       responce.Convert(row); 
       //if (row.Rows.Count != 0) 
      //{ 
      // foreach (DataRow result in row.Rows) 
      // { 
      //  string idstudent = result["id"].ToString(); 

      //  string avgstudent = result["AVG"].ToString(); 
      //  string firstname = result["fname"].ToString(); 
      //  string date = result["date"].ToString(); 
      //  string namecourse = result["name"].ToString(); 


      // } 


      //} 

내가 시도 : 당신의 코드가 달성하려는 것과 매우 가까운 것 같습니다

[ {idstudent:"value" ,avg :"value" , avg : "value",firstname :"value"} 
     {idstudent:"value" ,avg :"value" , avg : "value",firstname :"value"} 
     {idstudent:"value" ,avg :"value" , avg : "value",firstname :"value"} ] 
+0

실제로 시도 했습니까? – leppie

+0

예,하지만 Newtonsoft에서 같은 양식으로 변환하는 방법을 모르겠습니다. – MohammadTofi

+0

나는이 json을 android에 보내려고하기 때문에. – MohammadTofi

답변

0

:

public string Convert(DataTable row) 
     { 
      StringBuilder sb = new StringBuilder(); 
      StringWriter sw = new StringWriter(sb); 
      JsonWriter jsonWriter = new JsonTextWriter(sw); 
      jsonWriter.Formatting = Formatting.Indented; 
      jsonWriter.WriteStartArray(); 
      if (row.Rows.Count != 0) 
      { 
       foreach (DataRow result in row.Rows) 
       { 
        jsonWriter.WriteStartObject(); 
        string idstudent = result["id"].ToString(); 
        jsonWriter.WritePropertyName("id"); 
        jsonWriter.WriteValue(idstudent); 
        jsonWriter.WriteEndObject(); 
       } 

      } 
      jsonWriter.WriteEndArray(); 
      jsonWriter.Close(); 
      sw.Close(); 

가 같은 JSON으로이 행을 변환 할 수있는 방법 . DataRow에있는 모든 열을 원하면 foreach 루프가 모든 테이블의 열을 반복해야합니다. (나는 명확성을 위해 테이블에 여기 DataTable에 이름을 변경 한 것을 참고하고 DataRow를 이름 행합니다.)이 예는 어디 소스 빈 문자열을 기록 할 것으로

  foreach (DataRow row in table.Rows) 
      { 
       jsonWriter.WriteStartObject(); 
       foreach (DataColumn col in table.Columns) 
       { 
        jsonWriter.WritePropertyName(col.ColumnName); 
        jsonWriter.WriteValue((row[col.ColumnName] == null) ? string.Empty : row[col.ColumnName].ToString()); 
       } 
       jsonWriter.WriteEndObject(); 
      } 

주 데이터가 null입니다. 널 값을 완전히 남겨 두려면 특성 이름과 값을 쓰기 전에 (row [col.ColumnName] == null)에 대한 점검을 수행하십시오.

관련 문제