2012-10-03 50 views
2

我有一个JSON编码的字符串。它看起来像这样:C#Json.Net - 如何反序列化复杂的对象

{ “jsonrpc”: “2.0”, “方法”: “测试”, “PARAMS”:[ “80851851709e01bc9453cced585a7bca”, “这个”], “ID”:3}

出于某种原因,我无法使用C#访问'params'。该对象返回null。这里是我使用的代码:

public class Access : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public string EntryMethod(string json) 
    { 
     Requests d = JsonConvert.DeserializeObject<Requests>(json); 
     return "done"; 
    } 
} 
public class Requests 
{ 
    public string jsonrpc { get; set; } 
    public string method { get; set; } 
    public List<string> param { get; set; } 
    public string id { get; set; } 
} 

任何想法?

+0

您的属性称为'param'不'params'。我想这就是它的原因 –

回答

3

由于错误的拼写错误的,应该是:

ParamS // Add one more S 

所以,你的类应该是:

public class Requests 
{ 
    public string jsonrpc { get; set; } 
    public string method { get; set; } 
    public List<string> @params { get; set; } 
    public string id { get; set; } 
} 
+0

这样做。谢谢! – Sugitime

+0

只是在这里严重...但我不会建议使用保留关键字作为属性名称。相反,可能会更好地重命名为'Parameters'。 – James

相关问题