2014-06-18 34 views
1

我的C#類是JSON字符串未能在JSON.parse但經過JsonConvert.DeserializeObject

public class Man 
{ 
    public string name {get; set;} 
} 

字符串反序列化是這樣

var content = "[{name: \"john\"}]" 

現在保存到數據庫之前,我在做檢查如果字符串可以反序列化爲C#對象,然後將其存儲。通過該檢查

JsonConvert.DeserializeObject<List<Man>>(content) 

所以我保存這個字符串分貝但是當我做了JSON.parse在JavaScript字符串保存,它與錯誤崩潰

JSON.parse("[{name: \"john\"}]") 
SyntaxError: Unexpected token n 

現在我明白,周圍的左右鍵報價(「名稱」),這可以解決。這是正確的字符串,在這兩種JSON.parse和JsonConvert.DeserializeObject

var content = "[{\"name\": \"john\"}] 

問題是我在DB很多這樣的病人形成的字符串已經只JSON.parse那一聲工作。轉換這些字符串以便JSON.parse起作用的最佳方法是什麼?比string.replace好的東西 請注意,與給出的例子相比,實際的字符串相當大且複雜。

+0

首先反序列化比json.net –

回答

0

你可以使用using Newtonsoft.Json;它將DeserializeObject對象連你的json數據格式爲var content = "[{name: \"john\"}]"

值包含類似於數據:{StyleId:"1710","SelectedItemToColorMap":{1391:"583",21531:"7733"}}

var jsondata = JsonConvert.DeserializeObject(value); 

DeserializeObject後jsondata樣子

{ 
    "StyleId": "1710", 
    "SelectedItemToColorMap": { 
    "1391": "583", 
    "21531": "7733" 
    } 
} 
+0

再次連載你剛纔重複了,我已經把我的題。 –

+0

你可以DeserializeObject然後在JSON.parse()上使用它; –

相關問題