Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在带有JSON的.net MVC中,如何序列化以0开头的整数作为十进制数_.net_Asp.net Mvc_Json_Serialization - Fatal编程技术网

在带有JSON的.net MVC中,如何序列化以0开头的整数作为十进制数

在带有JSON的.net MVC中,如何序列化以0开头的整数作为十进制数,.net,asp.net-mvc,json,serialization,.net,Asp.net Mvc,Json,Serialization,默认的.NETMVC4JSON序列化程序是JavascriptSerializer类。这非常有效,但我们现在意识到,一些客户向我们发送一个前导为0的整数,这被视为一个八进制数。我们如何处理这件事 代码已经被很多人使用,因此我们无法将int改为字符串,这似乎是解决此问题的一种方法,但这不是一种选择,因为我们认为更改数据类型会破坏使用我们代码的其他实现 我们已经考虑过将其更改为使用json.net序列化程序,但是这个序列化程序似乎也有同样的问题 e、 当我们将012传递给int属性时,g.012被转

默认的.NETMVC4JSON序列化程序是JavascriptSerializer类。这非常有效,但我们现在意识到,一些客户向我们发送一个前导为0的整数,这被视为一个八进制数。我们如何处理这件事

代码已经被很多人使用,因此我们无法将int改为字符串,这似乎是解决此问题的一种方法,但这不是一种选择,因为我们认为更改数据类型会破坏使用我们代码的其他实现

我们已经考虑过将其更改为使用json.net序列化程序,但是这个序列化程序似乎也有同样的问题

e、 当我们将012传递给int属性时,g.012被转换为10


有什么办法可以解决这个问题吗?

在没有看到一些代码的情况下,我不确定您的问题到底是什么,但这就是我正在使用的应用程序中的小数用户钱包/帐户余额部分所做的

模型

控制器中的用法如下所示

Dim postedObj = StreamJSON.Fetch(New With {.userid=0,.amounttoadd=0d})
这为字段amounttoadd提供了一个十进制值

我创建了使用匿名对象的助手,因为我厌倦了为反序列化器创建类


希望这对您的情况有所帮助,如果有,请不要忘记将我的答案设置为答案。谢谢

我不知道序列化程序在哪里使用。。。我不知道您是在使用web api还是MVC操作。但是,我只能告诉您,JSON.Net允许大量定制,因此这看起来是一种方法。JavascriptSerializer就是这样,您对此无能为力
Public Class StreamJSON
    Public Shared Function Fetch(Of Type)(ByVal SampleObject As Type) As Type
        HttpContext.Current.Request.InputStream.Seek(0, IO.SeekOrigin.Begin)
        Dim jsonstring As String = New IO.StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd()
        Return Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(jsonstring, SampleObject)
    End Function
End Class
Dim postedObj = StreamJSON.Fetch(New With {.userid=0,.amounttoadd=0d})