데이터 테이블 행을 JSON
문자열로 변환 중입니다. Javascript serializer를 사용하여 일반적인 JSON
문자열을 생성했습니다. 어떻게 중첩 된 문자열로 생성 할 수 있습니까?C#에서 Javascript serializer를 사용하여 중첩 JSON에 DataTable
현재 JSON 출력
{
"PatientId":"32424",
"CustomerId":"XXXX",
"Name":"DiastolicBloodPressure",
"Value":89,
"Unit":"mmHg",
"MinValue":50,
"MaxValue":90,
"SessionElementResponseText":null
}
예상
{
"PatientId":"32424",
"CustomerId":"XXXX",
"VitalThreshold":{
"Name":"DiastolicBloodPressure",
"Value":89,
"Unit":"mmHg",
"MinValue":50,
"MaxValue":90
},
"SessionElementResponseText":null
}
코드
public static string DataTableToJSON(DataTable table)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach(DataRow dr in table.Rows)
{
row = new Dictionary<string, object>();
foreach(DataColumn col in table.Columns)
{
if(col.ColumnName.Equals("Name"))
{
//Trying here
}
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
serializer.MaxJsonLength = int.MaxValue;
return serializer.Serialize(rows);
}
DataTable의 데이터는 어떻게 비슷하게 생깁니 까? –
@RawitasKrungkaew - DataTable은 위에 표시된 '현재 Json 출력'과 유사합니다. 데이터 테이블의 열 이름은 PatientId | CustomerId | 이름 | 가치 | 단위 | MinValue | MaxValue | SessionElementResponseText – shockwave