JsonService.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. using Alchemy.Core.Extensions;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. namespace Alchemy.Core.Services
  5. {
  6. public class JsonService
  7. {
  8. /// <summary>
  9. /// 写入JSON
  10. /// </summary>
  11. /// <param name="fi"></param>
  12. /// <param name="strValue"></param>
  13. public static void WriteJson(FileInfo fi, string strValue)
  14. {
  15. WriteJson(fi.FullName, strValue);
  16. }
  17. /// <summary>
  18. /// 写入JSON
  19. /// </summary>
  20. /// <param name="strJsonPath"></param>
  21. /// <param name="strValue"></param>
  22. public static void WriteJson(string strJsonPath, string strValue)
  23. {
  24. JObject jo = strValue.FromJson<JObject>();
  25. string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
  26. File.WriteAllText(strJsonPath, output);
  27. }
  28. /// <summary>
  29. /// 写入JSON
  30. /// </summary>
  31. /// <param name="fi"></param>
  32. /// <param name="strValue"></param>
  33. public static void WriteJsonArray(FileInfo fi, string strValue)
  34. {
  35. WriteJsonArray(fi.FullName, strValue);
  36. }
  37. /// <summary>
  38. /// 写入JSON
  39. /// </summary>
  40. /// <param name="strJsonPath"></param>
  41. /// <param name="strValue"></param>
  42. public static void WriteJsonArray(string strJsonPath, string strValue)
  43. {
  44. JArray ja = strValue.FromJson<JArray>();
  45. string output = JsonConvert.SerializeObject(ja, Formatting.Indented);
  46. File.WriteAllText(strJsonPath, output);
  47. }
  48. /// <summary>
  49. /// 读取文件路径,写入Json内容
  50. /// </summary>
  51. /// <param name="fi"></param>
  52. /// <param name="strKey"></param>
  53. /// <param name="strValue"></param>
  54. public static void SetJson(FileInfo fi, string strKey, string strValue)
  55. {
  56. string strJson = File.ReadAllText(fi.FullName);
  57. SetJson(fi.FullName, strJson, strKey, strValue);
  58. }
  59. /// <summary>
  60. /// 读取文件路径,写入Json内容
  61. /// </summary>
  62. /// <param name="strJsonPath"></param>
  63. /// <param name="strJson"></param>
  64. /// <param name="strKey"></param>
  65. /// <param name="strValue"></param>
  66. public static void SetJson(string strJsonPath, string strJson, string strKey, string strValue)
  67. {
  68. JObject jo = strJson.FromJson<JObject>();
  69. jo[strKey] = strValue.FromJson<JToken>();
  70. string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
  71. File.WriteAllText(strJsonPath, output);
  72. }
  73. /// <summary>
  74. /// 读取文件路径,写入Json内容
  75. /// </summary>
  76. /// <param name="fi"></param>
  77. /// <param name="strKey"></param>
  78. /// <param name="strValue"></param>
  79. public static void SetValue(FileInfo fi, string strKey, string strValue)
  80. {
  81. string strJson = FileService.ReadAll(fi.FullName);
  82. SetValue(fi.FullName, strJson, strKey, strValue);
  83. }
  84. /// <summary>
  85. /// 读取文件路径,写入Json内容
  86. /// </summary>
  87. /// <param name="strJsonPath"></param>
  88. /// <param name="strJson"></param>
  89. /// <param name="strKey"></param>
  90. /// <param name="strValue"></param>
  91. public static void SetValue(string strJsonPath, string strJson, string strKey, string strValue)
  92. {
  93. JObject jo = (JObject)JsonConvert.DeserializeObject(strJson);
  94. jo[strKey] = strValue;
  95. string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
  96. FileService.WriteAll(strJsonPath, output);
  97. }
  98. /// <summary>
  99. /// 读取文件路径,获取Json内容
  100. /// </summary>
  101. /// <param name="strFilePath"></param>
  102. /// <returns></returns>
  103. public static string GetAllContent(string strFilePath)
  104. {
  105. return FileService.ReadAll(strFilePath);
  106. }
  107. /// <summary>
  108. /// 读取文件路径,获取Json内容
  109. /// </summary>
  110. /// <param name="fi"></param>
  111. /// <returns></returns>
  112. public static string GetAllContent(FileInfo fi)
  113. {
  114. return GetAllContent(fi.FullName);
  115. }
  116. /// <summary>
  117. /// 读取文件路径,从Json字符串的对象中获取Json字符串
  118. /// </summary>
  119. /// <param name="fi"></param>
  120. /// <param name="strKey"></param>
  121. /// <returns></returns>
  122. public static string GetJson(FileInfo fi, string strKey)
  123. {
  124. string strJson = FileService.ReadAll(fi.FullName);
  125. return GetJson(strJson, strKey);
  126. }
  127. /// <summary>
  128. /// 读取文件内容,从Json字符串的对象中获取Json字符串
  129. /// </summary>
  130. /// <param name="strJson"></param>
  131. /// <param name="strKey"></param>
  132. /// <returns></returns>
  133. public static string GetJson(string strJson, string strKey)
  134. {
  135. JObject jo = (JObject)JsonConvert.DeserializeObject(strJson);
  136. return jo[strKey].ToJson();
  137. }
  138. /// <summary>
  139. /// 读取文件路径,从Json字符串的对象中获取值
  140. /// </summary>
  141. /// <param name="fi"></param>
  142. /// <param name="strKey"></param>
  143. /// <returns></returns>
  144. public static string GetValue(FileInfo fi, string strKey)
  145. {
  146. string strJson = FileService.ReadAll(fi.FullName);
  147. return GetValue(strJson, strKey);
  148. }
  149. /// <summary>
  150. /// 读取文件内容,从Json字符串的对象中获取值
  151. /// </summary>
  152. /// <param name="strJson"></param>
  153. /// <param name="strKey"></param>
  154. /// <returns></returns>
  155. public static string GetValue(string strJson, string strKey)
  156. {
  157. JObject jo = (JObject)JsonConvert.DeserializeObject(strJson);
  158. return jo[strKey].ToString();
  159. }
  160. /// <summary>
  161. /// 读取文件路径,从Json字符串的数组中获取值
  162. /// </summary>
  163. /// <param name="fi"></param>
  164. /// <param name="index"></param>
  165. /// <param name="strKey"></param>
  166. /// <returns></returns>
  167. public static string GetValue(FileInfo fi, int index, string strKey)
  168. {
  169. string strJson = FileService.ReadAll(fi.FullName);
  170. return GetValue(strJson, index, strKey);
  171. }
  172. /// <summary>
  173. /// 读取文件内容,从Json字符串的数组中获取值
  174. /// </summary>
  175. /// <param name="strJson"></param>
  176. /// <param name="index"></param>
  177. /// <param name="strKey"></param>
  178. /// <returns></returns>
  179. public static string GetValue(string strJson, int index, string strKey)
  180. {
  181. JArray ja = (JArray)JsonConvert.DeserializeObject(strJson);
  182. return ja[index][strKey]?.ToJson();
  183. }
  184. }
  185. }