【问题标题】:How to Deserialize a very Simple RestSharp JSON Object?如何反序列化一个非常简单的 RestSharp JSON 对象?
【发布时间】:2018-07-18 22:04:34
【问题描述】:

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

我有这门课:

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 反序列化简单对象的基本简单示例,我将不胜感激。我到处搜索基本代码示例。

谢谢

【问题讨论】:

  • 你需要给你的类添加可序列化的属性吗?

标签: json object deserialization restsharp


【解决方案1】:

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

如果您希望服务器返回将反序列化为 DBCount 的对象,则返回 {"Count":"234"} 而不使用 []

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多