JSON Reader 2.0
Използвайки интегрираната среда за разработка Visual Studio и езика за програмиране C# ще разработим мулти-платформено мобилно приложение за изтегляне на вицове за Чък Норис във формат JSON.
Start
Стартирайте интегрираната среда за разработка Visual Studio.
Създайте нов проект: Visual C# > Cross-Platform > Mobile App (Xamarin.Forms).
За име на проекта запишете: JSON Reader 2.0.
Добавете допълнителни пакети към проекта като инсталирате: NewtonSoft.Json от менюто: Tools > NuGet Package Manager > Package Manager Console, като изпълните следните команди в конзолата:
PM> Install-Package Newtonsoft.Json -Version 13.0.1
Root.cs
Добавете нов клас Root.cs, който ще служи за десериализиране на данните от консумираната услуга.
using System.Collections.Generic;
namespace JSON_Reader_2._0
{
public class Root
{
public List<object> categories { get; set; }
public string created_at { get; set; }
public string icon_url { get; set; }
public string id { get; set; }
public string updated_at { get; set; }
public string url { get; set; }
public string value { get; set; }
}
}
Бележка
Заредете и копирайте примерен JSON от: https://api.chucknorris.io/jokes/random
Генерирайте C# класа на избрания JSON от: http://json2csharp.com/
MainPage.xaml
Файлът MainPage.xaml съдържа изходния код от дизайна на потребителския интерфейс на разработваното приложение и се пише на езика XAML. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="JSON_Reader_2._0.MainPage">
<!-- JSON Reader 2.0 User Interface -->
<StackLayout Padding="50">
<!-- Title -->
<Label Text="JSON Reader 2.0" FontSize="Large" FontAttributes="Bold" />
<!-- Buttons -->
<StackLayout Orientation="Horizontal">
<Button Text="New Joke" Clicked="NewJokeButtonClickedEventHandler" />
<Button Text="Tell Joke" Clicked="TellJokeButtonClickedEventHandler" />
</StackLayout>
<!-- Joke -->
<Label x:Name="JOKE" FontSize="Large" />
</StackLayout>
</ContentPage>
MainPage.xaml.cs
Файлът MainPage.xaml.cs съдържа изходния код от бизнес логиката на разработваното приложение и се пише на програмният език C#. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
using System;
using System.Net.Http;
using Xamarin.Forms;
using Xamarin.Essentials;
using Newtonsoft.Json;
namespace JSON_Reader_2._0
{
public partial class MainPage : ContentPage
{
/// <summary>
/// Constructor
/// </summary>
public MainPage()
{
InitializeComponent();
}
/// <summary>
/// New Joke Button Clicked Event Handler
/// </summary>
private async void NewJokeButtonClickedEventHandler(object sender, EventArgs e)
{
// 1. Http Client
HttpClient client = new HttpClient();
// 2. Http Request to Receive JSON Response
string json = await client.GetStringAsync(new Uri("https://api.chucknorris.io/jokes/random"));
// 3. Deserialize JSON to Object
Joke joke = JsonConvert.DeserializeObject<Joke>(json);
// 4. Show the Joke in the UI
JOKE.Text = joke.value;
}
/// <summary>
/// Tell Joke Button Clicked Event Handler
/// </summary>
private async void TellJokeButtonClickedEventHandler(object sender, EventArgs e)
{
var joke = JOKE.Text;
if (joke != "")
{
await TextToSpeech.SpeakAsync(joke);
}
}
}
}
Demo
Стартирайте приложението от менюто: Debug > Start Debugging или като натиснете клавиш F5.

Фиг. 63. Демонстрация на работата на мулти-платформеното мобилно приложение за изтегляне на вицове за Чък Норис
Last updated
Was this helpful?