繁体   English   中英

我正在尝试从 Rest API 中读取列表

[英]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。

我真的需要你的帮助,我想让它工作

  1. API 正在返回 XML,您需要更新它。

  2. 您需要将客户端配置为读取 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM