使用NewtonSoft的json.net,在整數值中保留前導零的最佳方法是什麼?在我的應用程序中,像04331和4331這樣的值具有不同的含義,因此消除前導零不是一種選擇。我目前正在將這些值轉換爲以JSON編碼之前的字符串。有沒有任何json.net參數可以在這裏使用?如何保留數字中的前導零?
非常感謝您的幫助!
使用NewtonSoft的json.net,在整數值中保留前導零的最佳方法是什麼?在我的應用程序中,像04331和4331這樣的值具有不同的含義,因此消除前導零不是一種選擇。我目前正在將這些值轉換爲以JSON編碼之前的字符串。有沒有任何json.net參數可以在這裏使用?如何保留數字中的前導零?
非常感謝您的幫助!
如果04331和4331有不同的含義,那麼它們是字符串,而不是數字。所以把它們發送成字符串。
如果你需要的話,可以填零號碼,但在你的情況下這是不正確的。
字符串可能是您最好的選擇。該JSON specification數字定義爲0
,或1-9
開始,因此這將是不正確的行爲保留前導零(甚至對付這種格式的數字!)
點上,一個PROD錯誤迫使我們我們改變一個字符串也是如此。另外,在使用Json.NET 4.5.0.0的Web Api 2中,當它嘗試反序列化一個前導零的數字時,我們得到異常消息「其他不可解析字符在末尾的字符串「,這真是令人誤解,並花了一段時間在大型json有效載荷中進行調試。 。
升級到Json的6.0 *在測試之後,我們看到了一些更有益的:「輸入字符串‘08430228’不是一個有效的數字路徑‘[屬性名]’,2號線,20位。」
所以我們更新的Web API使用最新的Json.NET二進制文件,並添加這web.config文件,迫使網絡API來使用該版本:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="4.5.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
與答案同意,這些都是字符串,而不是整數 –