C#中的JSON.Net反序列化 - 并非所有代码路径都返回一个值

时间:2014-07-16 17:44:13

标签: c# json serialization

我很擅长在应用程序中使用JSON,并做一些简单的编程,以便更好地理解如何解释和使用JSON数据。我有一个类Account,方法getAccount,它应该使用RestSharp来调用一个返回这个的JSON数组:

[{"account_id":"1"}]

我要做的是让JSON.Net序列化JSON响应并将数据拉入字符串,以便以后使用。

这就是我所拥有的:

class Account
{
    public string account_id {get; set;}

    public Account getAccount(String username, String password)
    {

            var client = new RestClient("http://www.myapiurl.com/api/");
            var request = new RestRequest("login.php?username={username}&password={password}, Method.POST");
            request.AddParameter("username", username);
            request.AddParameter("password", password);
            RestResponse response = (RestResponse)(client.Execute(request));

            Account account = JsonConvert.DeserializeObject<Account>(response.ToString());
            account_id = account.account_id.ToString();

    }
}

}

我在VS2013中收到的错误消息是:

DataLogic.Account.getAccount(string,string)并非所有代码路径都返回值

我不确定我在哪里丢失代码以确保方法始终返回一个值,或者如何补偿它。

我们将非常感谢任何指导/解释,或就如何更好地处理这一概念提出建议。

谢谢!

2 个答案:

答案 0 :(得分:1)

您的错误与JSON.Net或反序列化无关。你没有归还这个对象。

只需在方法的末尾添加以下行。

return account;

您的方法签名声明该方法将返回Account

类型的对象
public Account getAccount(String username, String password)
       ^^^^^^^
      //return type

并且您的方法代码缺少return语句,因此错误。

答案 1 :(得分:1)

您需要从方法中返回一个值:

return account;

方法的返回类型在方法定义中描述:

public Account getAccount(String username, String password)