首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户9378866的专栏

    SpringBoot 采用JsonSerializer和Aop 实现可控制的数据脱敏

    JsonSerializer介绍就参考这位大佬的aop介绍参考这位大佬的初步尝试枚举类/** * 敏感信息枚举类 * **/public enum PrivacyTypeEnum { /** /** * 用什么打码 */ String maskStr() default "*";}复制代码序列化类public class PrivacySerialize extends JsonSerializer type); } }else { jsonGenerator.writeString(""); } } @Override public JsonSerializer }}复制代码更新之后的序列化类思路就是通过反射获取,该成员的属性,因为不知道会继承多少,所以要进行递归查找需要的字段public class PrivacySerialize extends JsonSerializer /logger.info("不进行脱敏处理"); jsonGenerator.writeString(origin); } } @Override public JsonSerializer

    99810编辑于 2023-05-04
  • 来自专栏centosDai

    CA2330:在反序列化时确保 JsonSerializer 具有安全配置

    jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer.SerializationBinder = Binders.BookRecord Return jsonSerializer.Deserialize jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto

    2800编辑于 2022-02-27
  • 来自专栏centosDai

    CA2330:在反序列化时确保 JsonSerializer 具有安全配置

    jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer.SerializationBinder = Binders.BookRecord Return jsonSerializer.Deserialize jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto

    76800编辑于 2022-02-20
  • 来自专栏centosDai

    CA2329:不要使用不安全的配置反序列化 JsonSerializer

    jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer.SerializationBinder = New BookRecordSerializationBinder() Return jsonSerializer.Deserialize

    99200编辑于 2022-02-20
  • 来自专栏centosDai

    CA2329:不要使用不安全的配置反序列化 JsonSerializer

    jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer = new JsonSerializer(); jsonSerializer.TypeNameHandling = TypeNameHandling.Auto As JsonSerializer = New JsonSerializer() jsonSerializer.TypeNameHandling = TypeNameHandling.Auto jsonSerializer.SerializationBinder = New BookRecordSerializationBinder() Return jsonSerializer.Deserialize

    3500编辑于 2022-02-27
  • 来自专栏DotNet NB && CloudNative

    System.Text.Json 中的 JsonExtensionData

    (p1, nameof(p1)); WriteLine(JsonSerializer.Serialize(p1.Extensions)); var p2 = JsonSerializer.Deserialize (p)); var p1 = JsonSerializer.Deserialize<Person1>(jsonString); ArgumentNullException.ThrowIfNull(p1 , nameof(p1)); WriteLine(JsonSerializer.Serialize(p1)); var p2 = JsonSerializer.Deserialize<Person2> (jsonString); ArgumentNullException.ThrowIfNull(p2, nameof(p2)); WriteLine(JsonSerializer.Serialize(p2 )); var p3 = JsonSerializer.Deserialize<Person3>(jsonString); ArgumentNullException.ThrowIfNull(p3,

    99210发布于 2021-11-10
  • 来自专栏程序猿杜小头

    聊聊 Java SPI

    (JsonSerializerWrapper jsonSerializer) { REGISTERED_JSON_SERIALIZER.remove(jsonSerializer); } public static JsonSerializer getJsonSerializer(String manufactureName) { if (! (JsonSerializer.class); Iterator<JsonSerializer> jsonSerializerIterator = jsonSerializerServiceLoader.iterator JsonSerializerWrapper) && this.jsonSerializer == ((JsonSerializerWrapper) other).jsonSerializer jsonSerializer = JsonSerializerManager.getJsonSerializer("alibaba"); jsonSerializer.serialize

    1K20编辑于 2022-12-01
  • 来自专栏pandacode_cn

    SpringBoot - FastJson

    import java.io.IOException; import java.lang.reflect.Type; import com.alibaba.fastjson.serializer.JSONSerializer JSONSerializer:相当于一个序列化组合器,集成了SerializeConfig, SerializeWriter , SerializeFilter与SerializerFeature。 serializer = new JSONSerializer(out, config); if (dateFormat ! > serializerLocal = new ThreadLocal<JSONSerializer>(); private static final ThreadLocal<Character > serializerLocal = new ThreadLocal<JSONSerializer>(); private static final ThreadLocal<Character

    2.1K20编辑于 2021-12-17
  • 来自专栏Seebug漏洞平台

    Liferay Portal Json Web Service 反序列化漏洞(CVE-2020-7961)

    jsonSerializer = new JsonSerializer(); String json = jsonSerializer.deep(true).serialize(testObject jsonSerializer = new JsonSerializer(); String json = jsonSerializer.setClassMetadataName("class class JSONSerializerImpl implements JSONSerializer { private final JsonSerializer _jsonSerializer ;//JODD的JsonSerializer,最后还是交给了JODD的JsonSerializer去处理,只不过包装了一些额外的设置 public JSONSerializerImpl() { (Object target) { JsonSerializer jsonSerializer = this.

    1.8K20发布于 2020-04-02
  • 来自专栏丑胖侠

    SpringBoot2.x系列教程(十四)SpringBoot Json之@JsonComponent

    如果使用Jackson对JSON数据进行序列化和反序列化,则可以编写自己的JsonSerializer和JsonDeserializer。 同时,SpringBoot提供了一个可选的@JsonComponent注释,可以将对应的JsonSerializer和JsonDeserializer直接注入为Spring Beans,从而实现全局化处理 下面看具体示例,通过自定义的JsonSerializer和JsonDeserializer和@JsonComponent注解来完成RGB颜色和Web颜色直接的转换。 double blue; // getter/setter } 定义解析器并使用注解: @JsonComponent public class ColorSerializer extends JsonSerializer

    1.3K20发布于 2020-02-11
  • 来自专栏饭勺oO的技术博客

    造轮子之缓存

    if (string.IsNullOrWhiteSpace(value)) return default(T); return JsonSerializer.Deserialize CancellationToken cancellationToken = default) { await cache.SetStringAsync(key, JsonSerializer.Serialize CancellationToken cancellationToken = default) { await cache.SetStringAsync(key, JsonSerializer.Serialize AbsoluteExpirationRelativeToNow = timeSpan }; await cache.SetStringAsync(key, JsonSerializer.Serialize AbsoluteExpiration = dateTimeOffset }; await cache.SetStringAsync(key, JsonSerializer.Serialize

    37310编辑于 2023-10-18
  • 来自专栏不止dotNET

    .NET8 正式发布, C#12 新变化

    object[] { Half.MaxValue, Int128.MaxValue, UInt128.MaxValue })); //输出:"AQIDBAUG" Console.WriteLine(JsonSerializer.Serialize <ReadOnlyMemory<byte>>(new byte[] { 1,2,3,4,5,6})); //输出:[1,2,3] Console.WriteLine(JsonSerializer.Serialize (new UserInfo() { UserName = "oec2003" }, options1)); Console.WriteLine(JsonSerializer.Serialize(new UserInfo() { UserName = "oec2003" }, options2)); Console.WriteLine(JsonSerializer.Serialize(new UserInfo () { UserName = "oec2003" }, options3)); Console.WriteLine(JsonSerializer.Serialize(new UserInfo() {

    1.3K20编辑于 2023-11-17
  • 来自专栏DotNet NB && CloudNative

    dotnet 10 新的 JsonIgnoreCondition

    (p1); Console.WriteLine(jsonP1); var p1Deserialized = JsonSerializer.Deserialize<Person>(jsonP1); Console.WriteLine (user1); Console.WriteLine(json1); var user1Deserialized = JsonSerializer.Deserialize<User>(json1); Console.WriteLine (user2); Console.WriteLine(json2); var user2Deserialized = JsonSerializer.Deserialize<User2>(json2); (user3); Console.WriteLine(json3); var user3Deserialized = JsonSerializer.Deserialize<User3>(json3); (user4); Console.WriteLine(json4); var user4Deserialized = JsonSerializer.Deserialize<User4>(json4);

    22900编辑于 2025-04-24
  • 来自专栏晓晨的专栏

    从 Newtonsoft.Json 迁移到 System.Text.Json

    (cat)); // output: {"Name":"xiaoshi","Age":18} 变化:JsonConvert.SerializeObject()->JsonSerializer.Serialize DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull }; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault }; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize System.Text.Json: var bytes = JsonSerializer.SerializeToUtf8Bytes(cat) 序列化为 UTF-8 字节数组比使用基于字符串的方法大约快 { PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase, }; cat=System.Text.Json.JsonSerializer.Deserialize

    3.5K40编辑于 2023-03-08
  • 来自专栏全球技术精选

    .NET 6 中的七个 System.Text.Json 特性

    ReferenceHandler = ReferenceHandler.IgnoreCycles, WriteIndented = true }; string dotnetJson = JsonSerializer.Serialize IJsonOnSerialized•IJsonOnSerializing Product invalidProduct = new() { Name = "Name", Test = "Test" }; JsonSerializer.Serialize (invalidProduct); // The InvalidOperationException is thrown string invalidJson = "{}"; JsonSerializer.Deserialize Category = "Laptops" }; JsonSerializerOptions options = new() { WriteIndented = true }; string json = JsonSerializer.Serialize Console.OpenStandard输出(); Example exampleToSerialize = new() { Value = "Serialized from stream" }; JsonSerializer.Serialize

    92210编辑于 2022-01-04
  • 来自专栏java

    【三十三】springboot+序列化实现返回值脱敏和返回值字符串时间格式化问题

    ​ 2、准备接口 ​ 3、准备脱敏注解 ​ 4、准备序列化处理类 public class SensitiveInfoSerialize extends JsonSerializer @param property * @return * @throws JsonMappingException */ @Override public JsonSerializer 方法就是为了找到需要处理的属性,而集成JsonSerializer后重写的serialize方法就是为了处理需要处理的属性。 4、增加字符串日期格式处理注解 5、准备序列化处理类 public class StringToDateSerialize extends JsonSerializer<String> DateUtil.format(DateUtil.parse(value,sourceFormat), targetFormat)); } @Override public JsonSerializer

    67010编辑于 2024-06-21
  • [C#]如何使用Newton.Json从流中反序列化json数据

    ser = new JsonSerializer(); ser.Serialize(jsonWriter, value); jsonWriter.Flush(); ser = new JsonSerializer(); return ser.Deserialize<T>(jsonReader); } } Share Improve this ser = JsonSerializer.Create(settings); you can define which settings to use during de/serialization directly: var serializer = new JsonSerializer(); serializer.Deserialize(streamReader); Share Improve JSON is expected to be UTF-8 and this is what JsonSerializer expects.

    32610编辑于 2025-07-19
  • 来自专栏网络安全攻防

    FastJson1&FastJson2反序列化利用链分析

    比如说,这一部分的函数调用从JSONSerializer.write到ListSerializer.write,然后在ListSerializer.write生成了一个反序列化工具类并赋给了itemSerializer objectSerializer; if (object == null) { jSONSerializer.writeNull(); return; } SerializeWriter serializeWriter = jSONSerializer.out; if (! this.writeDirect(jSONSerializer)) { this.writeNormal(jSONSerializer, object, object2, type (); jSONSerializer.setContext(serialContext, object, object2, 0); int n2 = 123;

    96020编辑于 2024-08-05
  • 来自专栏newbe36524的技术专栏

    使用 System.Text.Json 时,如何处理 Dictionary 中 Key 为自定义类型的问题

    "one" }, "one" }, { new CustomType { Id = 2, Name = "two" }, "two" } }; // 序列化字典 string json = JsonSerializer.Serialize (dictionary); // 反序列化字典 Dictionary<CustomType, string> dictionary2 = JsonSerializer.Deserialize<Dictionary 接下来,我们使用 JsonSerializer.Serialize 方法将字典序列化为 JSON 字符串,并使用 JsonSerializer.Deserialize 方法将 JSON 字符串反序列化为字典 Converters.Add(new CustomTypeConverter()); // 序列化字典 string jsonString = JsonSerializer.Serialize(dictionary , options); // 反序列化 JSON 字符串 var result = JsonSerializer.Deserialize<Dictionary<CustomType, string>>

    1.5K20编辑于 2023-08-23
  • 来自专栏痴者工良

    Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全

    JsonObjectAttribute Instructs the JsonSerializer how to serialize the object. The JsonSerializer enables you to control how objects are encoded into JSON. JsonSerializerSettings Specifies the settings on a JsonSerializer object. NullValueHandling Specifies null value handling options for the JsonSerializer. TypeNameHandling Specifies type name handling options for the JsonSerializer.

    6.7K30发布于 2021-04-26
领券