Igo*_*tin 8 c# json.net deserialization
我正在使用Json.NET在服务器端反序列化请求.
有类似的东西
public object[] Values
Run Code Online (Sandbox Code Playgroud)
我需要把像价值观30.0,27,54.002,和他们需要double的和int的.
Json.NET有一个名为FloatParseHandling的反序列化属性,但没有像IntParseHandling这样的选项.所以问题是如何将整数反序列化int?
最好的办法是反序列化到一个类型化的模型,其中模型表示这Values是一个int/ int[]/等.在一些情况下有是object/ object[](大概是因为类型事先不出名,或者它是一个数组因此,JSON.NET默认为不合理long,因为当数组中存在大小值混合时,这将导致最少的混淆.除此之外,它无法知道路上的值是什么(3L(a long),在JSON中序列化时,看起来与3(an int)相同).你可以简单地进行后处理Values,并寻找任何是long与在int范围内:
for(int i = 0 ; i < Values.Length ; i++)
{
if(Values[i] is long)
{
long l = (long)Values[i];
if(l >= int.MinValue && l <= int.MaxValue) Values[i] = (int)l;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |