gpt4 book ai didi

c# - 将iTunes商店中的Json反序列化为C#对象

转载 作者:行者123 更新时间:2023-12-02 06:09:08 24 4
gpt4 key购买 nike

我有以下从iTunes返回的Json(我已替换了一些有关隐私的详细信息,例如用户名和评论内容)

{"feed":{"author":{"name":{"label":"iTunes Store"}, "uri":{"label":"http://www.apple.com/uk/itunes/"}}, "entry":[
{"author":{"uri":{"label":"https://itunes.apple.com/gb/reviews/ID"}, "name":{"label":"Username"}, "label":""}, "im:version":{"label":"3.51"}, "im:rating":{"label":"4"}, "id":{"label":"12345"}, "title":{"label":"Review title"}, "content":{"label":"Review contents", "attributes":{"type":"text"}}, "link":{"attributes":{"rel":"related", "href":"https://itunes.apple.com/gb/review?reviewid"}}, "im:voteSum":{"label":"0"}, "im:contentType":{"attributes":{"term":"Application", "label":"Application"}}, "im:voteCount":{"label":"0"}},

// more entries ...

我想将其反序列化为一类。我只需要评论标题,评论内容和“im:rating”(即星数)。但是,由于嵌套的Json以及如何提取此数据的键的使用,我感到很挣扎。到目前为止,我已经创建了一个准备反序列化的类,并且我已经使用 AppStoreData appStoreData = JsonConvert.DeserializeObject<AppStoreData>(stringResult);对其进行反序列化
public class AppStoreData {

}

我的问题是我不知道在类中放入什么内容才能从Json获得所需的信息。我已经尝试过诸如:
public string title {get; set;} public string content {get; set;} public string imrating {get; set;}
但是,这不起作用。我还认为 im:rating在C#中是无效名称。

谁能帮忙吗?谢谢

最佳答案

要解决im:rating问题,可以使用JsonProperty属性

    [JsonProperty("im:rating")]
public Id ImRating { get; set; }

将诸如Label之类的内容转换为字符串属性的问题在于,它不是字符串,而是输入文件中的对象。
你需要类似的东西
     [JsonProperty("title")]
public Id Title { get; set; }

Id是一个类
public class Id
{
[JsonProperty("label")]
public string Label { get; set; }
}

或编写一个反序列化器为您将其转换为字符串。

我建议尝试使用 https://app.quicktype.io/?l=csharphttp://json2csharp.com/等许多免费代码生成器之一,以抢先一步,然后根据自己的喜好编辑所有内容。

关于c# - 将iTunes商店中的Json反序列化为C#对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58978269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com