サンプル14

JSONデータ(文字列)からDataTableを作成するc#サンプルです。

<Visual Studio 内でやること>

・参照の追加で、Newtonsoft.Json.dll を追加する。

※DLL入手元:http://www.newtonsoft.com/json

 

<サンプルプログラム c#>

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace HikariCTI_Sample_014
{
    class Program
    {
        static void Main(string[] args)
        {
            //JSONデータ
            string rcv_jsonData = "";

            //変数rcv_jsonData に下のようなJSONデータを何らかの方法で読み込む
            //
            //{
            //    "データ": 
        //    [    
            //        {
            //            "id": 0,
            //            "path": "C:\\Users\\marusato\\Documents\\Hikari Denwa CTI\\db_backup\\hd_cti.sdf",
            //            "cre_date": "2017-01-19T23:38:33.9477002",
            //            "upd_date": "2017-01-20T00:25:35.8546082",
            //            "acc_date": "2017-01-19T23:38:33.9477002",
            //            "length": 282624
            //        },
            //        {
            //            "id": 1,
            //            "path": "C:\\Users\\marusato\\Documents\\Hikari Denwa CTI\\gazoutemp\\1_1.jpg",
            //            "cre_date": "2016-08-27T08:51:57.4827828",
            //            "upd_date": "2016-08-27T13:13:24.8515149",
            //            "acc_date": "2016-08-27T08:51:57.4827828",
            //            "length": 64492
            //        }
            //    ]
            //}

            string message = "";

            //JSONデータをDataTableに変換する
            DataTable dt = JSON_to_DataTable(rcv_jsonData);
            if (dt.Rows.Count > 0)
            {
                message = "データ個数:" + dt.Rows.Count;
            }
            else
            {
                message = "データ無し";
            }

            Console.WriteLine(message);

            Console.ReadLine();
        }

        //JSONデータをDataTableに変換する
        static DataTable JSON_to_DataTable(string text)
        {
            DataTable dt = null;

            try
            {
                DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(text);
                dt = dataSet.Tables["データ"];
            }
            catch
            {
                dt = new DataTable("データ");   //空のデータテーブル
            }

            return dt;
        }
    }
}