Newtonsoft反序列化对象

时间:2013-06-26 01:17:44

标签: c# json.net

字符串结果如下:

{ "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定义错误。这有什么不对吗?

1 个答案:

答案 0 :(得分:2)

您的代码无法编译,因为identifiers无法以数字开头。

您可以使用JsonPropertyAttribute来引用Json中的1属性。

public class JsonData
{
    [JsonProperty("1")]
    public string One { get; set; }
}

用法:

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

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