在带有JSON的.net MVC中,如何序列化以0开头的整数作为十进制数
默认的.NETMVC4JSON序列化程序是JavascriptSerializer类。这非常有效,但我们现在意识到,一些客户向我们发送一个前导为0的整数,这被视为一个八进制数。我们如何处理这件事 代码已经被很多人使用,因此我们无法将int改为字符串,这似乎是解决此问题的一种方法,但这不是一种选择,因为我们认为更改数据类型会破坏使用我们代码的其他实现 我们已经考虑过将其更改为使用json.net序列化程序,但是这个序列化程序似乎也有同样的问题 e、 当我们将012传递给int属性时,g.012被转换为10在带有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被转
有什么办法可以解决这个问题吗?在没有看到一些代码的情况下,我不确定您的问题到底是什么,但这就是我正在使用的应用程序中的小数用户钱包/帐户余额部分所做的 模型 控制器中的用法如下所示
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})