2013-06-26 214 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