c# - 一次性嵌套 JSON 属性
问题描述
我正在与一个 API 交互,该 API 的请求包含此代码段:
"occurrence":{
"type":"XYZ"
}
不是用成员创建Occurence
对象Type
,而是有一些可以序列化的 Newtonsoft JSON 魔法
public string Occurence = "XYZ"
成上面的格式?
解决方案
您可以使用自定义JsonConverter从本质上将发生属性的 JSON 表示扁平化为类型。
class SomeModel
{
[JsonConverter(typeof(OccuranceConverter))]
public string Occurence { get; set; }
}
class OccuranceConverter : JsonConverter<string>
{
public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer)
{
var json = JObject.Load(reader);
return json.GetValue("type").Value<string>();
}
public override void WriteJson(JsonWriter writer, string value, JsonSerializer serializer)
{
var json = new JObject { ["type"] = value };
json.WriteTo(writer);
}
}
推荐阅读
- node.js - GCP中长时间运行的查询CORS问题
- python - 为什么在本地类定义中的 `print` 语句之后分配给变量会更改打印值?
- php - |PHP新手| 我怎样才能将它安装到 php
- azure - 如何为同一租户中的所有订阅运行一个 Azure 自动化运行手册?
- python - 使用输入形状为 (192,192,3) 的 VGG16 进行微调时出现 InvalidArgumentError
- android - 在前台服务中使用 LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY 时是否有任何限制?
- java - 从java中的SQL解密数据
- maven - 如何在不依赖项目的情况下解决 maven pom 中工件的路径?
- scala - Why is override sometimes required for an abstract method?
- .htaccess - 如何使用 Htaccess 在 php 中将页面重写为带有 id 的基本 url