gpt4 book ai didi

asp.net-core - 对于复杂类型属性的模型绑定(bind),将 int(1 和 0)转换为 bool(true 和 false)的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 01:42:02 32 4
gpt4 key购买 nike

我正在将一些服务集成到我的服务器中。但是提供者 api 使某些字段使用 1 和 0 来指示 bool true 和 false。所以我想在发生模型绑定(bind)时进行自定义转换。

请求发送到我的服务器:

{
...
"prefix_success": "1" // or "0"
...
}

我的模型:

public class RequestForm {
...

public bool Success { get; set; }

...
}

最佳答案

如果请求是带有 JSON 负载的 POST,并且值作为字符串传递,那么您可以执行以下操作:

创建自定义 JsonConverter

using Newtonsoft.Json;
using System;

namespace AppNamespace.JsonConverters
{
public class NumericStringToBooleanConverter : JsonConverter
{
public override bool CanRead => true;
public override bool CanWrite => false;

public override bool CanConvert(Type objectType) => objectType == typeof(string);

public override object ReadJson(JsonReader reader, Type objectType,
object existingValue, JsonSerializer serializer)
{
return reader.Value.ToString().Equals("1");
}

public override void WriteJson(JsonWriter writer, object value,
JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
}

然后使用模型属性JsonConverter

using AppNamespace.JsonConverters;
using Newtonsoft.Json;
using System;
--
[JsonProperty("prefix_success")]
[JsonConverter(typeof(NumericStringToBooleanConverter))]
public bool Success { get; set; }

关于asp.net-core - 对于复杂类型属性的模型绑定(bind),将 int(1 和 0)转换为 bool(true 和 false)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954118/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com