[英]I'm trying to read a list from an Rest API
我正在尝试从 rest API 我在 .net 创建的列表中读取
这是 class
public class Cliente
{
public string Cliente1 { get; set; }
[PrimaryKey]
public string Correo { get; set; }
public string Telefono { get; set; }
public string Calle { get; set; }
public string Hab { get; set; }
public string Ciudad { get; set; }
public string Estado { get; set; }
public Nullable<int> Zip { get; set; }
public int Row { get; set; }
public string Celular { get; set; }
public string ID { get; set; }
}
这是电话
public Cliente getCliente()
{
try
{
Cliente cliente;
var URLWebAPI = "https://www.caja.somee.com/api/Clientes";
using (var Client = new System.Net.Http.HttpClient())
{
var JSON = Client.GetStringAsync(URLWebAPI);
cliente = Newtonsoft.Json.JsonConvert.DeserializeObject<Cliente>(JSON.Result);
}
return cliente;
}
catch (Exception ex)
{
throw ex;
}
}
这是方法
Repositorio repo = new Repositorio();
Cliente listacliente = repo.getCliente();
ListaClientes.ItemsSource = listacliente.Cliente1;
这是 xaml 视图
<ListView x:Name="ListaClientes" BackgroundColor="White" VerticalOptions="Fill" Grid.Row="1" Grid.Column="0" SeparatorColor="LightGray">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="7*"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding Cliente1}" Grid.Row="0" Grid.Column="1" HorizontalOptions="Center" VerticalOptions="Center" TextColor="DarkRed" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这就是错误
Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON array (eg [1,2,3]) into type 'AppCaja.Cliente' because the type requires a JSON object (eg {"name":"value"}) to正确反序列化。 要修复此错误,请将 JSON 更改为 JSON object(例如 {"name":"value"})或将实现的反序列化类型接口更改为数组或数组的 ILists 接口(IColle 之类的类型)从 JSON 阵列反序列化。 JsonArrayAttribute 也可以添加到类型中以强制它从 JSON 数组反序列化。 路径'',第 1 行,position 1。
我真的需要你的帮助,我想让它工作
API 正在返回 XML,您需要更新它。
您需要将客户端配置为读取 Json。
>
using (var Client = new System.Net.Http.HttpClient())
{
//This line
Client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
var JSON = Client.GetStringAsync(URLWebAPI);
cliente = Newtonsoft.Json.JsonConvert.DeserializeObject<Cliente>(JSON.Result);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.