c#json读取树结构
本文关键字:结构 读取 c#json | 更新日期: 2023-09-27 18:15:12
我目前被困在一个需要为学校项目构建的应用程序中。我们需要从api链接中读取数据并将其显示在列表中,但我无法设置类的变量,因为它是树结构的,我不知道如何在响应中导航。答复如下。如何获取类中的字符串标题?与此响应中的标题相同?
{
Results: [
{
Id: 6413,
Feed: 1,
Title: "'Politieteam chemicaliën werkt onder te grote druk'",
Summary: "Het team van de politie dat dagelijks met levensgevaarlijke chemicaliën te maken krijgt bij het ontmantelen van illegale drugslabs staat onder enorme druk. Sommige werkdagen duren 24 uur.<br /> ",
PublishDate: "2015-09-30T14:32:28",
Image: "http://media.nu.nl/m/m1oxo80axqo8_sqr256.jpg/politieteam-chemicalien-werkt-grote-druk.jpg",
Url: "http://www.nu.nl/binnenland/4136038/politieteam-chemicalien-werkt-grote-druk.html",
Related: [
"http://nu.nl/binnenland/3932577/vaten-met-chemische-xtc-stoffen-gevonden-in-garage-breugel.html",
"http://nu.nl/binnenland/3486693/drugslaboratorium-in-huis-heerlen.html",
"http://nu.nl/buitenland/2614100/synthetische-drugs-verdringen-cocaine.html"
],
Categories: [
{
Id: 50,
Name: "Algemeen"
},
{
Id: 53,
Name: "Binnenland"
}
],
IsLiked: false
},
{
Id: 6414,
Feed: 2,
Title: "'Nederlandse betalingsdient Adyen gewaardeerd op 2 miljard'",
Summary: "Een Amerikaans investeringsfonds, waar onder anderen Mark Zuckerberg van Facebook en Jack Dorsey van Twitter in participeren, heeft een investering gedaan in de Nederlandse betalingsverkeerdienst Adyen. ",
PublishDate: "2015-09-30T14:30:29",
Image: "http://media.nu.nl/m/m1nxkfwa72hm_sqr256.jpg/nederlandse-betalingsdient-adyen-gewaardeerd-2-miljard.jpg",
Url: "http://www.nu.nl/internet/4136034/nederlandse-betalingsdient-adyen-gewaardeerd-2-miljard.html",
Related: [ ],
Categories: [
{
Id: 57,
Name: "Internet"
},
{
Id: 91,
Name: "Economie"
},
{
Id: 94,
Name: "Ondernemen"
}
],
IsLiked: false
},
}
我的失败代码:
public async Task LoadData()
{
try
{
using (var client = new HttpClient())
{
var json = await client.GetStringAsync("HTTPLINKTOAPI");
Data = JsonConvert.DeserializeObject<ObservableCollection<TestModel>>(json);
}
}
catch { }
}
测试模型类别:
public sealed class TestModel
{
public string Id { get; set; }
public string Title { get; set; }
}
首先,为JSON中的所有results-results对象创建一个容器(Results
类(。它是对象(Result
类(的集合(数组(,具有Id
、Title
等属性以及其他集合等。
public class ResultContent
{
public IList<Result> Results { get; set; }
}
public class Result
{
public int Id { get; set; }
public string Title { get; set; }
}
var r = JsonConvert.DeserializeObject<ResultContent>(json);
另外,请去掉这个空的catch
,否则您将不知道从API获取数据的过程中出了什么问题。清空catch
总是非常糟糕的做法。