c# - 在 JsonConverter.ReadJson 中读取原始输入
问题描述
我正在研究一种原始转换器。反序列化修饰属性时,我需要从源中获取原始字符串。
public class X
{
[JsonConverter(typeof(MyConverter))]
public string Y {get;set;}
}
Y
将包含一个序列化的对象,比如说{"a":1,"b":2}
. 因此,从 JSON 的角度来看,属性 Y 将包含一个 object {"Y":{"a":1,"b":2}}
。但是在反序列化时我需要它作为完全相同的字符串返回。
这种方法有效,但是在反序列化并再次序列化时需要双重加载,并且仍然可能会以不同的方式对其进行序列化。
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
JObject jo = JObject.Load(reader);
return jo.ToString(serializer.Formatting, serializer.Converters.ToArray());
}
我需要的是允许我从 JSON 对象的开头到结尾读取为原始字符串的东西。不幸的是,这JsonReader
是一个标记器,它在阅读时会立即进行转换。
解决方案
推荐阅读
- vue.js - 生产构建Vue js,无法访问构建文件夹中的图像文件
- enterprise-architect - 企业架构师 ER 图。为什么不显示多重性值?
- r - 如何在 R 中修复“范围 0 x 2 的表”
- laravel - Laravel broadcast()->toOthers() 方法不起作用,仍然重复(Laravel 8 / Pusher / Laravel Echo / VueJs 3
- sql-server - 这个 SQL 子查询如何正确向量化?
- arrays - Lua 对象数组
- javascript - A*(A-star) 算法给出错误的路径并崩溃
- python - ImportError:libgssapi_krb5.so.2:无法打开共享对象文件:没有这样的文件或目录
- oauth-2.0 - 从 Databricks 使用 MSAL PublicClientApplication acquire_token_interactive 方法获取 oAuth 令牌不起作用:InteractiveBrowserCredential
- javascript - 有没有办法将 Express.Multer.File 放入 FormData 对象?