Synchronous version

This commit is contained in:
sunkaixuan
2022-04-27 20:34:39 +08:00
parent 2c76e043de
commit 31743774d7

View File

@@ -294,7 +294,8 @@ namespace SqlSugar
} }
else if (IsJsonList(readerValues, item)) else if (IsJsonList(readerValues, item))
{ {
result.Add(name, DeserializeObject<List<Dictionary<string, object>>>(readerValues[item.Name.ToLower()].ToString())); var json = readerValues.First(y => y.Key.EqualCase(item.Name)).Value.ToString();
result.Add(name, DeserializeObject<List<Dictionary<string, object>>>(json));
} }
else if (IsBytes(readerValues, item)) else if (IsBytes(readerValues, item))
{ {
@@ -374,10 +375,10 @@ namespace SqlSugar
private static bool IsJsonList(Dictionary<string, object> readerValues, PropertyInfo item) private static bool IsJsonList(Dictionary<string, object> readerValues, PropertyInfo item)
{ {
return item.PropertyType.FullName.IsCollectionsList() && return item.PropertyType.FullName.IsCollectionsList() &&
readerValues.ContainsKey(item.Name.ToLower()) && readerValues.Any(y=>y.Key.EqualCase(item.Name)) &&
readerValues[item.Name.ToLower()] != null && readerValues.First(y => y.Key.EqualCase(item.Name)).Value != null &&
readerValues[item.Name.ToLower()].GetType() == UtilConstants.StringType && readerValues.First(y => y.Key.EqualCase(item.Name)).Value.GetType() == UtilConstants.StringType &&
Regex.IsMatch(readerValues[item.Name.ToLower()].ToString(), @"^\[{.+\}]$"); Regex.IsMatch(readerValues.First(y => y.Key.EqualCase(item.Name)).Value.ToString(), @"^\[{.+\}]$");
} }
private Dictionary<string, object> DataReaderToDynamicList_Part<T>(Dictionary<string, object> readerValues, PropertyInfo item, List<T> reval, Dictionary<string, string> mappingKeys=null) private Dictionary<string, object> DataReaderToDynamicList_Part<T>(Dictionary<string, object> readerValues, PropertyInfo item, List<T> reval, Dictionary<string, string> mappingKeys=null)