有誰知道如何將json字符串從asp.net轉換成DataTable?我開始瞭解Deserialize,它需要這個類,我只是想返回數據表。任何人都可以告訴我如何將其轉換爲數據表?如何將json轉換爲數據表?
回答
假設你的JSON字符串是對象的列表,每個對象將對應的行中的數據表,即:
public DataTable DerializeDataTable()
{
const string json = @"[{""Name"":""AAA"",""Age"":""22"",""Job"":""PPP""},"
+ @"{""Name"":""BBB"",""Age"":""25"",""Job"":""QQQ""},"
+ @"{""Name"":""CCC"",""Age"":""38"",""Job"":""RRR""}]";
var table = JsonConvert.DeserializeObject<DataTable>(json);
return table;
}
如果您的JSON結構不同,請發佈它。最好的祝福。
我不知道你正在使用的JSON庫,但你可能想看看JSON.NET因爲有叫有一個轉換的對象類型是:
Newtonsoft.Json.Converters.DataTableConverter
// Summary:
// Converts a System.Data.DataTable to and from JSON.
我沒用過此功能之前,但你可以有一個去與它。
這很簡單。
如果你在框架2.0中,你必須在你的項目中導入json.net(http://json.codeplex.com/),如果你的框架比較高級,它有json。
在vb.net框架2.0的代碼:
Dim Table DataTable
Table = Json.JsonConvert.DeserializeObject(Of DataTable)(Json_string)
That's所有。
要小心json.net(http://json.codeplex.com/),並不尊重table.tablename和主鍵。你必須在轉換分貝後進行分析。 – AAP
這個問題是過時的,但有人可能正在尋找答案,所以在這裏。 它沒有與舊JSON.NET,但今天我升級到最新版本和中提琴!它效果很好。
已將DataTable序列化爲Json來回,零問題!這是一個很棒的新功能。
希望它可以幫助其他人。乾杯。
using Newtonsoft.Json;
string json = "[{"clientID":"1788","projectID":"19"},{"clientID":"1789","projectID":"24"},{"clientID":"1790","projectID":"24"},{"clientID":"1790","projectID":"23"},{"clientID":"1790","projectID":"21"}]";
DataTable tester = (DataTable) JsonConvert.DeserializeObject(json, (typeof(DataTable)));
代碼上面的方法
public object Deserialize(string jsonText, Type valueType)
{
try
{
Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();
json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
StringReader sr = new StringReader(jsonText);
Newtonsoft.Json.JsonTextReader reader = new JsonTextReader(sr);
object result = json.Deserialize(reader, valueType);
reader.Close();
return result;
}
catch (Exception ex)
{
throw ex;
}
}
反序列化jsonstring一些類
List<User> UserList = JsonConvert.DeserializeObject<User>(jsonString);
寫下面的擴展方法到項目
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;
}
調用擴展方法一樣
UserList.ToDataTable<User>();
我正在嘗試使用上面的擴展方法 - 構建時沒有錯誤。但我確實收到編譯錯誤:「編譯器錯誤消息:CS0121:以下方法或屬性之間的調用不明確:'ExtensionHelpers.ToDataTable <_Default.Jobs>(System.Collections.Generic.IList <_D efault.Jobs> )'和'ExtensionHelpers.ToDataTable <_Default.Jobs>(System.Collections.Generic.IList <_D efault.Jobs>)'「你有什麼想法可能會導致它? –
- 1. 將JSON數據轉換爲數據表
- 2. 如何將gridview數據轉換爲Json?
- 3. 我如何將HAL JSON數據轉換爲JSON數據表的JSON數組
- 4. 將表格數據轉換爲JSON
- 5. 將JSON數據轉換爲時間表
- 6. 如何將JSON數據轉換爲html表
- 7. 如何使用json.net將命名的數據錶轉換爲json
- 8. 如何動態地將JSON轉換爲數據庫表格?
- 9. 如何將複雜的分層數據錶轉換爲json?
- 10. 如何將數據列表轉換爲json
- 11. 我該如何將JSON轉換爲使用C#的數據表
- 12. 如何使用json.net將數據錶轉換爲json字符串?
- 13. 如何將json字符串轉換爲數據表?
- 14. 如何將熊貓數據透視錶轉換爲JSON
- 15. 如何將json數據轉換爲jQuery中的html表格?
- 16. 將MySql表格數據轉換爲JSON轉換
- 17. 如何將json轉換爲Python列表?
- 18. 如何將YANG數據模型轉換爲JSON數據?
- 19. 如何將JSON數據轉換爲Rails中的PList數據?
- 20. 如何在Python中將json樹數據轉換爲數據框?
- 21. VB.NET - 將JSON數據轉換爲數組
- 22. 將JavaScript數組轉換爲JSON數據
- 23. 如何將數據轉換成json
- 24. 如何將數組轉換爲JSON
- 25. 如何將Json數組轉換爲XSD
- 26. 如何將JSON數組轉換爲NSArray
- 27. 如何將postgres json轉換爲整數
- 28. 如何將JSON轉換爲javascript數組?
- 29. 如何將JSon數組轉換爲csv?
- 30. 如何JSON數據轉換爲HTML
您是否找到解決方案?我面臨同樣的問題。 '輸入字符串格式不正確。請勿在Latitude Co lumn中存儲<6.94127>。預期的類型是Int64'。我正在使用Newtonsoft.Json.dll。任何解決方案 – Piraba
內置DataTable不會序列化列信息,它必須從數據中推斷列類型。我在這裏創建了一個改進的轉換器https://github.com/chris-herring/DataTableConverter –