如何反序列化一个非常简单的RestSharp JSON对象?

时间:2014-02-18 01:45:09

标签: json object deserialization restsharp

原谅肯定是一个愚蠢的问题,但我刚开始用C#使用JSON。

我有这堂课:

public class DBCount
{
    public string Count { get; set; }
}

我创建了一个实例:

public DBCount dbCount;

我的网络服务正在返回:

  

[{ “计数”: “234”}]

此代码在尝试反序列化响应时抛出无效的强制转换:

var client = new RestClient("http://www.../")
var request = new RestRequest ("demo/jsondbcount.php",Method.GET);
request.RequestFormat = DataFormat.Json;

var response = client.Execute (request);
RestSharp.Deserializers.JsonDeserializer deserialCount = new JsonDeserializer();
dbCount =  deserialCount.Deserialize<DBCount> (response);

这是无效的强制转换错误:

  

“无法从源类型转换为目标类型”

如果有人能指出我使用RestSharp反序列化一个简单对象的基本简单例子,我将非常感激。我到处搜索了一个基本的代码示例。

由于

1 个答案:

答案 0 :(得分:1)

您可能已经想到了这一点,但问题是[][{"Count":"234"}]是一个大小为1的数组,其中包含一个字段为Count的对象。

如果您希望服务器返回一个将反序列化为DBCount的对象,则在没有{"Count":"234"}的情况下返回[]

如果您希望代码正确反序列化[{"Count":"234"}],那么您需要表明它正在反序列化集合,如下所示:

deserialCount.Deserialize<List<DBCount>>(response);