【发布时间】:2021-12-25 03:10:19
【问题描述】:
我想使用 Xamarin (C#) 反序列化从 json 继承的类
类:
public class AnnuaireTelephonique
{
public string nom { get; set; }
public string numero { get; set; }
}
public class RootAnnuaireTelephonique : List<AnnuaireTelephonique>
{
public string nomCategorie { get; set; }
public List<AnnuaireTelephonique> liste => this;
}
我使用继承的类来显示它,然后使用分组的 listView 但是当我使用以下代码反序列化时,它不起作用并导致应用程序崩溃
var annuaireTelephoniqueJson = JsonConvert.DeserializeObject<List<RootAnnuaireTelephonique>>(ReadData(annuaireTelephoniqueFileName) /*correct json*/);
AnnuaireTelephonique = new ObservableCollection<RootAnnuaireTelephonique>(annuaireTelephoniqueJson);
列表视图:
<ListView ItemsSource=""
IsGroupingEnabled="true"
x:Name="listData"
HasUnevenRows="True"
SeparatorVisibility="None">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label
Text="{Binding nomCategorie}"
FontSize="20"
TextColor="Black"
Margin="10"
HorizontalOptions="Center"
VerticalOptions="Start" />
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<customButton:CallNumberButton
Text="{Binding nom}"
NumberToCall="{Binding numero}"
FontSize="15"
Margin="8"
TextColor="Black"
BackgroundColor="#E6E6E6"
VerticalOptions="Start"
/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Json 示例:
[{ "nomCategorie": "1", “名单”:[ { “名义”:“A”, “数字”:“0600000000” }, { “名义”:“B”, “数字”:“0600000001” }, { “名义”:“C”, “数字”:“0600000002” } ] }, { "nomCategorie": "2", “名单”:[ { “名义”:“D”, “数字”:“0600000003” }, { “名义”:“E” “数字”:“0600000004” } ] } ]
【问题讨论】: