前言
在C#中,我们通常使用Newtonsoft.Json库(也称为Json.NET)来处理JSON数据。这个库提供了丰富的功能来序列化和反序列化JSON数据。
官网:
https://www.newtonsoft.com/json
NuGet安装:
1
| Install-Package Newtonsoft.Json -Version 13.0.3
|
工具类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
| using System; using System.Collections.Generic; using System.IO; using Newtonsoft.Json;
public class ZJsonHelper { public static string ToJson(object? t) { if (t != null) { return JsonConvert.SerializeObject( t, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include } ); }
return ""; }
public static string ToJson(object t, bool hasNullIgnore) { try { if (hasNullIgnore) { return JsonConvert.SerializeObject( t, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } ); }
return ToJson(t); } catch (Exception) { }
return ""; }
public static T? JsonToObj<T>(string strJson) where T : class { try { if (!string.IsNullOrEmpty(strJson)) { return JsonConvert.DeserializeObject<T>(strJson); } } catch (Exception) { }
return null; }
public static List<T> JsonToList<T>(string respstr) { try { JsonSerializer serializer = new JsonSerializer(); StringReader sr = new StringReader(respstr); object? o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>)); if (o is List<T> list) { return list; } } catch (Exception) { }
return new List<T>(); }
public static T? ObjToObj<T>(T? obj) where T : class { try { if (obj != null) { T? jsonToObj = JsonToObj<T>(ToJson(obj)); return jsonToObj; } } catch (Exception) { }
return default; }
public static List<T> ListToList<T>(List<T>? list) { try { if (list != null) { return JsonToList<T>(ToJson(list)); } } catch (Exception) { }
return new List<T>(); } }
|
忽略NULL值属性
1 2 3 4 5 6 7
| JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; return JsonConvert.SerializeObject( obj, Formatting.Indented, jsonSetting );
|