JsonToSelectModels.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Text.RegularExpressions;
  7. namespace SqlSugar
  8. {
  9. public partial class ContextMethods : IContextMethods
  10. {
  11. public List<SelectModel> JsonToSelectModels(string json)
  12. {
  13. List<SelectModel> conditionalModels = new List<SelectModel>();
  14. var jarray = this.Context.Utilities.DeserializeObject<JArray>(json);
  15. foreach (var item in jarray)
  16. {
  17. if (IsFieldName(item))
  18. {
  19. var model = item.ToObject<SelectModel>();
  20. conditionalModels.Add(model);
  21. }
  22. else if (IsString(item))
  23. {
  24. conditionalModels.Add(new SelectModel() { FieldName = item.ObjToString().ToCheckField(), AsName = item.ObjToString().Replace(".", "_") });
  25. }
  26. else if (IsArraySingleItem(item))
  27. {
  28. object fileName = item[0].ObjToString();
  29. var asName = item[0].ObjToString().Replace(".", "_");
  30. if (IsSqlFunc(item[0], fileName.ObjToString()))
  31. {
  32. fileName = JsonToSqlFuncModels(item[0]);
  33. }
  34. conditionalModels.Add(new SelectModel()
  35. {
  36. FieldName = fileName,
  37. AsName = asName
  38. });
  39. }
  40. else if (IsArray(item))
  41. {
  42. object fileName = item[0].ObjToString();
  43. var asName = item[1].ObjToString().Replace(".", "_");
  44. if (IsSqlFunc(item[0], fileName.ObjToString()))
  45. {
  46. fileName = JsonToSqlFuncModels(item[0]);
  47. }
  48. conditionalModels.Add(new SelectModel()
  49. {
  50. FieldName = fileName,
  51. AsName = asName
  52. });
  53. }
  54. else
  55. {
  56. conditionalModels.Add(new SelectModel()
  57. {
  58. FieldName = item.ObjToString().Trim(),
  59. AsName = item.ObjToString().Trim()
  60. });
  61. }
  62. }
  63. return conditionalModels;
  64. }
  65. }
  66. }