相关疑难解决方法(0)

使用Json.Net将int转换为bool

我正在调用web服务,bool字段的返回数据是0或1但是我的模型我使用的是System.Bool

使用Json.Net可以将0/1转换为我的模型的bool吗?

目前我收到一个错误

Newtonsoft.Json.JsonSerializationException:将值"0"转换为类型'System.Boolean'时出错

任何帮助都是极好的!!

json.net deserialization c#-4.0

43
推荐指数
1
解决办法
1万
查看次数

XML Serialize boolean为0和1

XML Schema Part 2指定定义为boolean的数据类型的实例可以具有以下合法文字{true,false,1,0}.例如,在反序列化时,以下XML将布尔属性"Emulate"设置为true.

<root>
    <emulate>1</emulate>
</root>
Run Code Online (Sandbox Code Playgroud)

但是,当我将对象序列化回XML时,我得到的true不是数值.我的问题是,有没有办法可以控制XML中的布尔表示?

c# xml schema serialization constraints

24
推荐指数
2
解决办法
2万
查看次数

如何让newtonsoft反序列化yes和no to boolean

注意:我已在此Feed的底部提供了解决方案.

我有一个C#Win 8应用程序,我正在反序列化一些看起来像这样的json:

{
    'Unit': [
        {
            'name':'House 123',
            isAvailable:'no'
        },
        {
            'name':'House 456',
            isAvailable:'yes'
        }]
}
Run Code Online (Sandbox Code Playgroud)

进入使用此接口的类:

public interface IUnit
{
    string Name { get; }
    bool isAvailable { get; }
}
Run Code Online (Sandbox Code Playgroud)

但是牛顿软件会抛出一个错误:

解析值时遇到意外的字符:n.Path'Unit [0] .isAvailable,第1行,第42位.

有没有办法根据生成的对象属性类型bool扩展Newtonsoft来解析yes/no或1/0?现在它只适用于真/假.

关于类的自定义转换器有几个帖子,但不是像bool这样的原始类型.

有什么建议?

c# serialization class extend json.net

11
推荐指数
4
解决办法
2万
查看次数

如何让 Newtonsoft 将 bool 序列化为 false,而不是 False 或“false”

如果我序列化一个 bool 值,我会得到这样的结果:

myboolValue: False
Run Code Online (Sandbox Code Playgroud)

我意识到这是由于 MicrosoftToString()对 bool的实现。

是否有我可以在 Newtonsoft 中更改以输出 false 的设置,例如:

myboolValue: false
Run Code Online (Sandbox Code Playgroud)

我可以使用 a 切换到字符串conditional ? "true" : "false",但这会在 JSON 中添加引号,例如:

myboolValue: "false"
Run Code Online (Sandbox Code Playgroud)

自定义序列化程序可以删除引号吗?

c# json.net

1
推荐指数
1
解决办法
6623
查看次数

使 Json.Net 将布尔值序列化为字符串

我想强制 Newtonsoft.JsonJsonConvert.SerializeObject始终将 bool 值威胁为字符串:"true""false"

我知道这JsonConvert是一个静态类,我可能应该编写一个扩展方法,如下所示:

JsonConvert.DefaultSettings = () => new JsonSerializerSettings {}
Run Code Online (Sandbox Code Playgroud)

但说实话,我不知道该怎么做,也不知道如何将其实现到我的方法中:

public static string Serialize(Foo fooData)
{
    return JsonConvert.SerializeObject(fooData);
}
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何建议。

c# json.net

1
推荐指数
1
解决办法
2025
查看次数