//{"access_token":"myaccesstoken","expires_in":3600,"token_type":"Bearer"}
string responseString = null;
TokenResponse tokenResponse = new TokenResponse();
tokenResponse = JsonConvert.DeserializeObject<TokenResponse>(responseString);
public class TokenResponse
{
//
// Summary:
// Gets the access token.
[JsonProperty(PropertyName = "access_token")]
public string AccessToken { get; set; }
////
//// Summary:
//// Gets the identity token.
//public string IdentityToken { get; }
//
// Summary:
// Gets the type of the token.
[JsonProperty(PropertyName = "token_type")]
public string TokenType { get; set; }
//
// Summary:
// Gets the refresh token.
[JsonProperty(PropertyName = "token_type")]
public string RefreshToken { get; set; }
//
// Summary:
// Gets the error description.
[JsonProperty(PropertyName = "error_description")]
public string ErrorDescription { get; set; }
//
// Summary:
// Gets the expires in.
[JsonProperty(PropertyName = "expires_in")]
public int ExpiresIn { get; set; }
}
异常错误消息
“在'app1.TokenResponse'上已经存在一个名为'token_type'的成员。使用JsonPropertyAttribute指定另一个名称。“
答案 0 :(得分:1)
您两次应用了完全相同的属性(下一个),
[JsonProperty(PropertyName = "token_type")]
关于两个不同的属性。一次用于TokenType
,一次用于RefreshToken
。您的代码副本粘贴在下面:
// Summary:
// Gets the type of the token.
[JsonProperty(PropertyName = "token_type")] //<---
public string TokenType { get; set; }
//
// Summary:
// Gets the refresh token.
[JsonProperty(PropertyName = "token_type")] //<---
public string RefreshToken { get; set; }
答案 1 :(得分:0)
在不同的上下文中,您有一个字段具有两种不同的含义。通常,这不是一种理想的数据格式,因为它会在另一端为用户增加混乱的逻辑。它们需要先了解“ Json”属性在每种情况下的含义。
也许您可以将它们添加到两个不同的类中:
public class TokenRefresh
{
//Gets the type of the token.
[JsonProperty(PropertyName = "token_type")]
public string TokenType { get; set; }
}
public class TokenResponse
{
// Gets the refresh token.
[JsonProperty(PropertyName = "token_type")]
public string RefreshToken { get; set; }
}