我可以做的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);
}
这是现在建成ServiceStack.Text这个承诺从v3.9.55 +。
编辑这里是我的解决方案,但请看看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; }
}
批评的欢迎。