为了账号安全,请及时绑定邮箱和手机立即绑定

在我的应用程序上显示来自 JSON 本地文件的数据

在我的应用程序上显示来自 JSON 本地文件的数据

C#
肥皂起泡泡 2022-12-31 13:10:22
我有一个本地 JSON 文件,我需要在我的应用程序上显示它的一些数据,我尝试了一些解决方案但没有任何反应,我在另一个“更轻”的 JSON 文件上尝试了以下代码,它有效,但它不适用于我的主要 JSON 文件。这是我的 JSON 文件:{  "latitude": 49.241524,  "longitude": 4.063723,  "glcParts": [    {      "id": 1,      "coordinates": [        {          "latitude": 49.241527,          "longitude": 4.063755        },        {          "latitude": 49.241545,          "longitude": 4.063865        },        {          "latitude": 49.241543,          "longitude": 4.063995        },        {          "latitude": 49.241537,          "longitude": 4.064188        }      ]    },    {      "id": 2,      "coordinates": [        {          "latitude": 49.241555,          "longitude": 4.063413        },        {          "latitude": 49.241571,          "longitude": 4.063260        },        {          "latitude": 49.241589,          "longitude": 4.063032        },        {          "latitude": 49.241600,          "longitude": 4.062884        }      ]    }  ],  "gicParts": [    {      "detectionZoneId": 1,      "relevanceZoneId": 2,      "direction": 0,      "iviType": 0,      "roadSign": [        {          "countryCode": "FR",          "trafficSignPictogram": 2,          "pictogramCategoryCode": {            "nature": 6,            "serialNumber": 61          }        }      ],      "extraText": [        {          "language": 714,          "content": "Rétrécissement"        },        {          "language": 714,          "content": "voie"        }      ]    },    {      "detectionZoneId": 1,      "relevanceZoneId": 2,      "direction": 0,      "iviType": 1,      "roadSign": [        {          "countryCode": "FR",          "trafficSignPictogram": 2,          "pictogramCategoryCode": {            "nature": 5,            "serialNumber": 57          }        }      ],      "extraText": [        {          "language": 714,          "content": "/!\\ 50 km/h"        }      ]    } 
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

根据你的 json,你应该在 IVIv2 对象中反序列化它,而不是在 GlcPart 中。

代替 :ObjContactList = JsonConvert.DeserializeObject<GlcPart>(jsonString);

和 :ObjContactList = JsonConvert.DeserializeObject<IVIv2>(jsonString);

所以在那之后你的

listviewGLC.ItemsSource = ObjContactList.GlcPart[0];

使用您当前的模型结构,您无法创建包含 GlcPart 列表中所有值的列表视图。


查看完整回答
反对 回复 2022-12-31
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

ObjContactList 必须是 xaml 中绑定的公共属性


我推荐一个清晰的代码,将 ViewModel 添加到 ContentPage 类并使用 Bindingcontext。




public partial class IVI_Display : ContentPage

{

    public IVI_DisplayViewModel ViewModel { get; set; }


   public IVI_Display()

   {

        ViewModel = new IVI_DisplayViewModel();

        ...

        BindingContext = ViewModel;

   }    



}


public class IVI_DisplayViewModel

{

    public object Coordinates { get; set; }

    ...

}


在 Xaml 中使用


<ListView x:Name="listviewGLC" ItemsSource="{Binding Coordinates} Grid.Row="1" HorizontalOptions="FillAndExpand" Footer="" HasUnevenRows="True">  

输入清晰的代码始终是一个好习惯。


查看完整回答
反对 回复 2022-12-31
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信