2013-06-26 258 views
2

字符串結果低於:Newtonsoft反序列化對象

{ "1": "something" }

string result = "{ \"1\"' : \"somestring\"}"; 

public class JsonData 
{ 
    private string _1; 

    public string 1 { get { return _1; } set { _1 = value; } } 

    public JsonData() 
    { 
    } 
} 

JsonData data = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonData >(result); 

我想反序列化String但JsonData定義是錯誤的。這有什麼不對?

+0

這是錯誤的,因爲你不能以數字開頭的成員的名字(不論是屬性,字段,方法,類,命名空間......)。 –

回答

2

由於identifiers無法以數字開頭,因此您的代碼無法編譯。

您可以使用JsonPropertyAttribute來引用Json中的1屬性。

用法:

var data = @"{ ""1"" : ""something"" }"; 

var result = JsonConvert.DeserializeObject<JsonData>(data); 
+0

字符串結果= @」 { \t 「數據」: \t { \t \t { 「1」: 「somestring」}, \t \t { 「2」: 「somestring」}, \t \t { 「3」 : 「somestring」}, \t \t { 「4」: 「somestring」}, \t \t { 「5」: 「somestring」}, \t \t { 「6」: 「somestring」}, \t \t {「 7「:」somestri NG」}, \t \t { 「8」: 「somestring」}, \t \t { 「9」: 「somestring」}, \t \t { 「10」: 「somestring」}, \t \t ...到許多 \t} } 「; – user1742844