我可以做的1 ServiceStack反序列化JSON值是真的吗?(Can I make Servi

2019-10-16 20:26发布

我可以做的1 ServiceStack反序列化JSON值是真的吗?
这里是展示什么,我想做一个单元测试。 这可能吗? 如果是的话怎么样?

public class Foo
{
    public bool isWorking { get; set; }
}

...

[Test]
public void Deserialise1AsBoolean()
{
    var json = @"{""isWorking"": 1}";
    var myFoo = json.FromJson<Foo>();
    Assert.IsTrue(myFoo.isWorking);
}

Answer 1:

这是现在建成ServiceStack.Text这个承诺从v3.9.55 +。



Answer 2:

编辑这里是我的解决方案,但请看看Mythz,以及因为我敢肯定,也将正常工作。

我deserialise到自定义结构MyBool而不是bool
下面是该MyBool结构中的代码。

public struct MyBool
{
    public bool Value { get; set; }

    public static MyBool Parse(string value)
    {
        return new MyBool {Value = (value == "1" || value=="true")};
    }

    public override string ToString()
    {
        return Value.ToString(CultureInfo.InvariantCulture);
    }

    public static implicit operator bool(MyBool lValue)
    {
        return lValue.Value;
    }

并改变富到:

public class Foo
{
    public MyBool isWorking { get; set; }
}

批评的欢迎。



文章来源: Can I make ServiceStack Deserialize json value of 1 as true?