我开发了WebAPI,它接受类和post方法类型。我在这里面临着非常奇怪的情况。
我在下面以json发布。
{
"MessageID":"fec41da8-655c-4532-af7d-554e1505a663",
"Number":0009,
}
在方法中,我接收Number为0 - 但是如果我将0001传递给0008 - 它工作正常,我接收其他为8.只有0009它转换为0表示其他值,它删除其他0。
0002 receives as 2
0009 receives as 0
有什么想法吗?
答案 0 :(得分:1)
我在这里说明的原因是JSON
不是有效的 JSON
{
"MessageID":"fec41da8-655c-4532-af7d-554e1505a663",
"Number":0009,
}
有效的JSON将是
{
"MessageID": "fec41da8-655c-4532-af7d-554e1505a663",
"Number": "0009"
}
如果您将使用我在此处显示的有效JSON
,那么您可以轻松地将其序列化为类对象
public class Test
{
public Guid MessageId { get; set; }
public int Number { get; set; }
}
我已针对WEB API 2.0
对其进行了测试,但它运行正常。
在方法中,我接收Number为0 - 但是如果我将0001传递给0008 - 它工作正常,我接收其他为8.只有0009它转换为0表示其他值,它删除其他0。
我没有找到上面这一行是正确的,因为如果我使用你的JSON
我在每种情况下都会得到0,即使它在 0001 to 0008 or 0009
之间编号。
答案 1 :(得分:-1)
我们可以覆盖json格式转换函数来处理这些值。
long value2 = text2.StartsWith("0x", StringComparison.OrdinalIgnoreCase) ?
Convert.ToInt64(text2, 16) :
Convert.ToInt64(text2, 8); // Here OCTAL!!!