[英]Can't deserialize JSon to C#
我在Windows窗体应用程序.net 4中返回了以下JSon,但是我可以获取头像URL! 尝试产生空值或在我当前的尝试中出现意外字符以下的尝试
这是JSon:
{"self":"http://jira.prod.xxxxxx.com/rest/api/2/user?username=firstname.lastname","key":"zzzzzz","name":"firstname.lastname","emailAddress":"firstname.lastname@xxxxxxxxxx.com","avatarUrls":{"16x16":"http://jira.prod.xxxxxx.com/secure/useravatar?size=xsmall&ownerId=zzzzzz&avatarId=12500","24x24":"http://jira.prod.xxxxxx.com/secure/useravatar?size=small&ownerId=zzzzzz&avatarId=12500","32x32":"http://jira.prod.xxxxxx.com/secure/useravatar?size=medium&ownerId=zzzzzz&avatarId=12500","48x48":"http://jira.prod.xxxxxx.com/secure/useravatar?ownerId=zzzzzz&avatarId=12500"},"displayName":"Lastname, FirstName","active":true,"timeZone":"Europe/Dublin","locale":"en_UK","groups":{"size":1,"items":[]},"applicationRoles":{"size":1,"items":[]},"expand":"groups,applicationRoles"}
这是我当前尝试获取URL的尝试,上面的json在“结果”中传递:我正在使用Newtonsoft JSON库
var response = JsonConvert.DeserializeObject<myselfResponse>(result);
public class myselfResponse
{
[JsonProperty("username")]
public string username { get; set; }
[JsonProperty("key")]
public string key { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("emailAddress")]
public string emailAddress { get; set; }
//public AvatarUrls avatarUrls { get; set; }
[JsonProperty("avatarUrls")]
public string avatarUrls { get; set; }
}
public class AvatarUrls
{
public string _16x16 { get; set; }
public string __invalid_name__24x24 { get; set; }
public string __invalid_name__32x32 { get; set; }
public string __invalid_name__48x48 { get; set; }
}
我得到的错误是意外字符
任何帮助将不胜感激...
您似乎已经注释掉了AvatarUrls
类型的正确属性,并将其替换为字符串属性。 不要那样做
而且,您已经发现可以使用JsonProperty
属性将JSON属性的属性名称设置为任何名称。 因此,取消注释该行,删除多余的字符串属性,然后对“无效名称”属性执行此操作:
[JsonProperty("16x16")]
public string Size16x16 { get; set; }
或者,如果您希望它是动态的,则根本不要使用单独的对象并执行以下操作:
[JsonProperty("avatarUrls")]
public Dictionary<string, string> AvatarUrls { get; set;}
请注意,通过使用JsonProperty
您还可以在C#中使用正确的命名并大写属性名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.