在寫webservices時,碰到的問題。
定義的類
public(1)當iage為非空值class
user
public
int? iage
public
string sname
}
string strjson = "";
結果:正常解析。三個欄位都有值。
(2)當iage欄位未傳遞時
string strjson = "";
結果:正常解析。sid和sname有值,iage欄位為null。
(3)當iage欄位為空字串時
string strjson = "";
結果:解析失敗。
(4)問題:
明明iage欄位為int?,是可以賦值為null的啊。
自己寫了個控制台進行測試,結果是以上的三種情況都能正常解析。
百思不得其解,於是請教大佬。
大佬一語道破,newtonsoft.json版本的原因。
工作專案使用的是4.0.8,我建立的控制台專案使用的是9.0.1。
大佬給的說明,我是看不懂。我工作專案中使用的版本不支援轉換空的值型別吧。
於是,尋找版本:
使用的是 newtonsoft.json -version 8.0.3 版本。
將工作專案中的dll檔案進行了替換。
替換後,就發布了乙個版本。
然而,又報錯了。
原因:使用了更高版本的dll檔案。
解決:在web.config的節點中,新增以下內容。
<至此完事。dependentassembly
>
<
assemblyidentity
name
="newtonsoft.json"
publickeytoken
="30ad4fe6b2a6aeed"
culture
="neutral"
/>
<
bindingredirect
oldversion
="0.0.0.0-8.0.0.0"
newversion
="8.0.0.0"
/>
dependentassembly
>
json屬性值為null時轉換
解決思路 將屬性值 null 轉換成 解決方法如下 1.經過搜尋可以用下面的方法 gson gson new gsonbuilder serializenulls create 但是這個卻無法解決反序列問題,怎麼解決呢?我在stackoverflow上找到了這個問題,親測有效 2.解決辦法如下 gs...
sql條件字段值型別轉換問題
今天發現乙個有趣的問題 users表中存在id為1 2 3的三條記錄,當我執行以下sql查詢資料庫時,select from users where id 1.html 竟然發現可以查詢出id為1的user記錄資訊,有點意外。修改字段屬性,將id由int型別轉換為varchar型別後,執行上一條sq...
sql條件字段值型別轉換問題
今天發現乙個有趣的問題 users表中存在id為1 2 3的三條記錄,當我執行以下sql查詢資料庫時,select from users where id 1.html 竟然發現可以查詢出id為1的user記錄資訊,有點意外。修改字段屬性,將id由int型別轉換為varchar型別後,執行上一條sq...