using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SqlSugar { public partial class ContextMethods : IContextMethods { public List> JsonToColumnsModels(string json) { List> result = new List>(); List conditionalModels = new List(); if (IsArray(json)) { return GetColumnsByArray(json); } else { return GetColumnsByObject(json); } } private List> GetColumnsByObject(string json) { List> result = new List>(); var dic = this.Context.Utilities.DeserializeObject>(json); result.Add( GetColumns(dic)); return result; } private List> GetColumnsByArray(string json) { List> result = new List>(); var jarray = this.Context.Utilities.DeserializeObject>>(json); foreach (var item in jarray) { result.Add(GetColumns(item)); } return result; } private Dictionary GetColumns(Dictionary dictionary) { Dictionary result= new Dictionary(); foreach (var item in dictionary) { var value = GetValue(item); result.Add(item.Key, value); } return result; } private static object GetValue(KeyValuePair item) { if (item.Value == null) return null; var valueString = item.Value.ToString(); var vallue = Json2SqlHelper.GetValue(valueString); var type = Json2SqlHelper.GetType(valueString); return UtilMethods.ConvertDataByTypeName(type,vallue); } } }