2015-10-07 174 views
0

我有一個問題,而你可以請任何一個幫助我在此如何反序列化JSON在C#中包含中文字符的字符串?

deserialise JSON字符串對象,它是包含在field.If的一箇中國或俄羅斯字符,我們使用的是正常的JSON解串器的特定字段爲空

我的JSON字符串具有如下格式

{ 
    "SportsAppId":"", 
    "SportId":"", 
    "Version":0, 
    "Url":"", 
    "Image":"", 
    "Description":"", 
    "AdditionalType":"", 
    "Name":"微軟", 
    "SatoriId":"", 
    "LastUpdatedAt":0 
} 

,我用Newtonsoft.Json

和我deserialisation代碼

dynamic d = JsonConvert.DeserializeObject(data); 
+2

正常工作: '字符串數據= 「{\」 名稱\ 「:\」 微軟\ 「}」; dynamic d = JsonConvert.DeserializeObject(data); string name = d.Name;' –

+0

你在你的問題中包含了帶有中文字符的JSON數據。在調用'DeserializeObject'之前,實際的數據是否也在你的本地變量'data'中?換句話說,它是否還包含這些漢字? (如果你沒有專門檢查,請檢查。) – hvd

+0

[也適用於我。](https://dotnetfiddle.net/Wqn3V0)也許你可以提供[MCVE](http://stackoverflow.com/help/mcve)來展示問題? –

回答

0

嘗試用文化的形式進行反序列化

dynamic d = JsonConvert.DeserializeObject(data, new JsonSerializerSettings() 
{ Culture = new System.Globalization.CultureInfo("zh-CHT") }); 
+0

仍然得到相同的輸出即..名稱丟失 – Muralikrishna

+0

具有該值的對象,但在讀取該值時會給出空的結果 – Muralikrishna

+0

嘗試更改當前的項目文化 –