Загрузка данных Json в WPF - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь загрузить файл Json в свой проект wpf, но он не работает .. Можете ли вы помочь мне, пожалуйста?Я посмотрел много видео и все еще не нашел правильного решения

После разрушения программа выдает исключение "Ошибка преобразования значения" {"для типа" Test.MyLibrary ", Path", строка 3, позиция 1

Это мой JSON-файл "test.json".

{
                    "Name" : "Apple",  

                    "ExpiryDate" : "May",

                    "Price" : 3.99

                    }

Это мой класс MyLibrary

 class MyLibrary
{


        public string Name { get; set; }
        public string ExpiryDate { get; set; }
        public double Price { get; set; }

}

Мой код C #

public MainWindow()
    {

        string path = "test.json";
        String myStream= File.ReadAllText(path);
        InitializeComponent();


        try

        {

            MyLibrary myLibrary= JsonConvert.DeserializeObject<MyLibrary>(myStream.ToString());

            DataContext = myLibrary;

        }

        catch (Exception ex)

        {


            MessageBox.Show(ex.Message);

        }

А теперь я хочу показать имя в ярлыке WPF

<Window x:Class="Test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:Test"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Window.DataContext>
    <local:MyLibrary/>
</Window.DataContext>
<Grid>
    <StackPanel>
        <TextBox x:Name="firstLabel" Text="{Binding Path=Name}"></TextBox>
        <Label Content="{Binding Path=Price}"></Label>

    </StackPanel>

</Grid>

Что я делаю не так?Есть идеи?

1 Ответ

0 голосов
/ 16 марта 2019

Есть ли у вас ошибка, исключение?Что случилось?Также вы не написали, какую библиотеку вы используете для сериализации JSON (я предполагаю, что это Newtonsoft.Json).

Я пробовал ваш код, но с одним небольшим изменением и работает:

MyLibrary myLibrary = JsonConvert.DeserializeObject<MyLibrary>(@"{""Name"" : ""Apple"", ""ExpiryDate"" : ""May"", ""Price"" : 3.99}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...