誰もがasp.netからjsonの文字列をDataTableに変換する方法を知っていますか? Deserializeについて知るようになりました。クラスが必要です。返されるデータテーブルが必要です。誰も私にそれをdatatableに変換する方法を教えてもらえますか?jsonをdatatableに変換するには?
答えて
すなわち、各オブジェクトは、データテーブル内の行に対応する、あなたの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.NET frameworkを必要とします。
JSON構造が異なる場合は、投稿してください。宜しくお願いします。私が使用していない
Newtonsoft.Json.Converters.DataTableConverter
// Summary:
// Converts a System.Data.DataTable to and from JSON.
:
私はあなたが使用しているJSONライブラリを確認していないが、あなたは、コンバータのオブジェクトタイプがあるとしてそこにJSON.NETを見てみたいかもしれませんが、これを呼ばれます前にこの機能を使用することができますが、あなたはそれを持って行くことができます。
簡単です。
フレームワーク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と主キーを尊重しません。あなたはdbを変換した後にそれを噛んでください。 – 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;
}
}
プロジェクトに拡張メソッド
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;
}
のようなコール拡張メソッド、次のいくつかのクラス
List<User> UserList = JsonConvert.DeserializeObject<User>(jsonString);
書くためにあなたのjsonstringをデシリアライズ
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. C#を使用してJSONをDataTableに変換するには
- 2. Json文字列をDataTableに変換します。
- 3. IQueryableをDataTableに変換する方法
- 4. datareaderをdatatableに変換する方法
- 5. DataTableを辞書Cに変換する#
- 6. DataSetをDataTableに変換する方法
- 7. DataTableをリストに変換する
- 8. C#.NETを使用してjson文字列をdatatableに変換しますか?
- 9. DataTable用の文字列の一部をJSONに変換します。
- 10. JSON文字列をCompact Framework 3.5のDatatable/Datasetに変換します。
- 11. byte []配列をDataTableに変換
- 12. SQLでUDFからdatatableを変換するには?
- 13. JSONオブジェクトをループに変換して配列に変換する
- 14. デシリアライズする前にjsonオブジェクトをカスタムタイプに変換するには?
- 15. GWT RPCをJSONに変換
- 16. テキストをJSONに変換
- 17. TweepyステータスオブジェクトをJSONに変換
- 18. pymongoカーソルをjsonに変換
- 19. オームモデルツリーをJSON構造に変換する
- 20. JSONをPHPでJavaScriptに変換する
- 21. NSDataをJSONに変換する
- 22. LuaデータをJSONに変換する
- 23. ExcelをJSONに変換する
- 24. XMLをiOSでJSONに変換する
- 25. SwiftyJSON:オブジェクトをJSONに変換する
- 26. リストをJavaのjsonに変換する
- 27. Rhodes PropertyBagモデルをJSONに変換する
- 28. Python - JSONにCSVファイルを変換する
- 29. jsonをNSArrayに変換する方法
- 30. JSONをDjangoのモデルインスタンスに変換する
解決策を見つけましたか?私は同じ問題に直面しています。 '入力文字列の形式が正しくありません。<6.94127>をLatitude Co列に格納できませんでした。予想されるタイプはInt64です。私はNewtonsoft.Json.dllを使用しています。任意のソリューションですか? – Piraba
Builtin DataTableは列情報をシリアル化せず、データから列の種類を推測する必要があります。私はここで改善されたコンバータを作成しましたhttps://github.com/chris-herring/DataTableConverter –