c# - JSonNet bool 序列化

标签 c# json serialization json.net

快速提问:

在 JSONNet 中——如何获取 bool true/false 以序列化为 bool 1/0

我可以看到我们如何处理空值以及所有似乎无法找到如何执行此操作的方法。

这可能吗?

最佳答案

您可以像这样实现自定义转换器:

[TestFixture]
public class CustomJsonSerialization
{
    [Test]
    public void Test()
    {
        string serializeObject = JsonConvert.SerializeObject(true, new BoolConverter());
        Assert.That(serializeObject, Is.EqualTo("1"));
        var deserializeObject = JsonConvert.DeserializeObject<bool>(serializeObject, new BoolConverter());
        Assert.That(deserializeObject, Is.True);
    }
}

public class BoolConverter : JsonConverter
{
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        writer.WriteValue(((bool)value) ? 1 : 0);
    }

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

    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(bool);
    }
}

关于c# - JSonNet bool 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9738324/

相关文章:

c# - New-AzurePIMRequest 作为 .net 函数?

c# - Web 表单页面指令中的 CompilationLock 错误

javascript - json 数据未显示在模板 View AngularJS 中

c# - 以特定格式将对象序列化为 XML

c# - 反序列化数组中的项目时忽略自定义 JsonConverter

c# - 将数据收集到一个对象中并在 .NET/C# 中对其进行排序

c# - 通过 IHttpAsyncHandler 发送文件时遇到问题

json - 从 JSON 对象中提取值并将它们分配给循环中的 shell 变量

javascript - 如何警告 json 数组中的值?

c# - 我可以将单个对象序列化为嵌套的 XML 吗?