[英]how to datatable convert into json
我有以下json代碼,有任何庫和方法,我使用mydatatable值轉換為json因為我發布數據json格式。 很難添加這些類型的參數。
using (var content = new StringContent("{ \"vehicles\": [ { \"vehicle_type\": \""+ vehicale_type +"\", \"vehicle_id\": \"" +vehicle_id+"\"," +
"\"vehicle_plate\": \"" +vehicle_plate+ "\", \"latitude\": "+latitude +"+, \"longitude\": "+longitude+", \"eta_minutes\": null, " +
"\"make\": \"null\", \"model\": \""+carModel+"\", \"color\": \"Black\", \"status\": \""+status+"\", " +
"\"driver_id\": \"" + driver_id + "\", \"driver_phone\": \"" + driver_phone + "\", \"driver_first_name\": \"" + driver_first_name + "\", " +
"\"driver_last_name\": \"" + driver_last_name + "\", \"direction\": { \"kph\": 20, \"heading\": 90 } }, " +
"{ \"vehicle_type\": \"" + vehicale_type2 + "\", \"vehicle_id\": \""+vehicle_id2+"\", \"vehicle_plate\": \""+vehicle_plate2+"\", \"latitude\":"+latitude2+", " +
"\"longitude\":" + longitude2 + ", \"eta_minutes\": null, \"make\": \"null\", \"model\": \"" + carModel2+ "\", " +
"\"color\": \"Black\", \"status\": \""+status2+"\", \"driver_id\": \""+driver_id2+"\", \"driver_phone\": \""+driver_phone2+"\", " +
"\"driver_first_name\": \"" + driver_first_name2+ "\", \"driver_last_name\": \"" + driver_last_name2 + "\", \"direction\": { \"kph\": 20, " +
"\"heading\": 90 } } ]}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PostAsync("{supplier_id}/availability?version=2", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
按照以下步驟以非常有效和更好的方式完成此任務:
創建一個具有要求發送的必需屬性的類。
//for example public class Request { public List<Vehicle> vehicles { get; set; } } public class Vehicle { public string vehicle_type {get; set;} }
將值分配給對象
Request request =new Request(); request.vehicles = new List<Vehicle>(); // and so on
使用Newtonsoft.Json
將對象序列化為:
var json = JsonConvert.SerializeObject(request);
用json調用你的請求
using (var response = await httpClient.PostAsync("{supplier_id}/availability?version=2", json)) { string responseData = await response.Content.ReadAsStringAsync(); }
這將有助於在json字符串中格式化您的數據表值。 傳遞你的實際數據表對象和方法將返回json的字符串。
public string DataTableToJsonObj(DataTable dt)
{
DataSet ds = new DataSet();
ds.Merge(dt);
StringBuilder JsonString = new StringBuilder();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
JsonString.Append("[");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
JsonString.Append("{");
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
if (j < ds.Tables[0].Columns.Count - 1)
{
JsonString.Append("\"" + ds.Tables[0].Columns[j].ColumnName.ToString() + "\":" + "\"" + ds.Tables[0].Rows[i][j].ToString() + "\",");
}
else if (j == ds.Tables[0].Columns.Count - 1)
{
JsonString.Append("\"" + ds.Tables[0].Columns[j].ColumnName.ToString() + "\":" + "\"" + ds.Tables[0].Rows[i][j].ToString() + "\"");
}
}
if (i == ds.Tables[0].Rows.Count - 1)
{
JsonString.Append("}");
}
else
{
JsonString.Append("},");
}
}
JsonString.Append("]");
return JsonString.ToString();
}
else
{
return null;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.