Live2D 看板娘 / Demo

C# 将JArray转换为datatable

        /// <summary>
        /// 将JArray转换为datatable
        /// </summary>
        /// <param name="dataArr"></param>
        /// <returns></returns>
        private DataTable JArrayToDatable(JArray dataArr)
        {
            if (dataArr == null || dataArr.Count <= 0) return null;

            DataTable result = new DataTable();
            var colnames = ((JObject)dataArr.First).Properties();
            List<string> columnNames = new List<string>();

            if (colnames == null || colnames.Count() <= 0) return null;

            foreach (var item in colnames)
            {
                if (!columnNames.Contains(item.Name))
                {
                    columnNames.Add(item.Name);
                }
                result.Columns.Add(item.Name, typeof(string));
            }
            foreach (JObject data in dataArr)
            {
                JObject jo = JObject.Parse(data.ToString());
                DataRow row = result.NewRow();
                foreach (var columnName in columnNames)
                {
                    if (jo.Property(columnName) == null)
                    {
                        data.Add(columnName, "");
                        row[columnName] = data[columnName].ToString();
                    }
                    else
                    {
                        row[columnName] = data[columnName].ToString();
                    }
                }
                result.Rows.Add(row);
            }
            return result;
        }

DataTable data = JArrayToDatable(JArray.FromObject(model.Items));

posted @ 2022-10-20 16:47  KysonDu  阅读(1038)  评论(0编辑  收藏  举报