JSON.NET With Xamarin iOS - Part Two

Introduction

Xamarin is a platform to develop cross-platform and multi-platform apps (for example, Windows phone, Android and iOS). In the Xamarin platform, the code sharing concept is used. In Xamarin Studio, Visual Studio is also available.

Json.NET is a popular high-performance JSON framework for .NET.
Prerequisites
  • Xamarin Studio.
  • Xcode.
The steps given below are required to be followed in order to read JSON in Xamarin iOS, using Xamarin Studio.

Step 1

Go to Xamarin Studio.

Click New Solution—> select iOS—>select App--> choose single View App. Afterwards, click Next.

 

Step 2

In this step, configure your app. Give the app name (Ex:sample), Organization Identifier. Afterwards, click Next.
 
 

Step 3

In this step, give your project name (Ex: Sample) and solution name (Ex: Sample). Give the path of your project. Afterwards, click Create.

 

Step 4

Subsequently, go to the solution. In the solution, get all the files and sources in your project. Now, select Main.storyboard and double click to open Main.storyboard page.
 
 

Step 5

After opening the Main.storyboard, you can design the page, as per your desire.
 
 

Step 6

In this step, add one Package in your project. Its name is called Json.NET.

Go to Solution Explorer—>Package—>Add Package.
 
 

Step 7

Now choose Json.NET and select Version. Afterwards, click Add Package.
 
 

Step 8

In this step, design your app, using storyboard and Toolbox.

TextBox(txtInput)
Button(btnWrite)
Button(btnRead)
Label(lblDisplay)

 

Step 9

In this step, add one class file name called (JsonHelper.cs) and write the code given below.

JsonHelper.cs
  1. using System;  
  2. using System.IO;  
  3. using Newtonsoft.Json.Linq;  
  4. namespace XamariniOSJson {  
  5.     public class JsonHelper {  
  6.         public static string fileextension = ".json";  
  7.         public static string Folderpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);  
  8.         public static bool JsonWrite(string filename, string JsonData) {  
  9.             try {  
  10.                 var filepath = Path.Combine(Folderpath, filename + fileextension);  
  11.                 File.WriteAllText(filepath, JsonData);  
  12.                 Console.WriteLine(true.ToString());  
  13.                 return true;  
  14.             } catch (Exception e) {  
  15.                 Console.WriteLine(e.ToString());  
  16.                 return false;  
  17.             }  
  18.         }  
  19.         // Json File Read Here  
  20.         public static string JsonReader(string filename, string fieldname) {  
  21.             try {  
  22.                 var filepath = Path.Combine(Folderpath, filename + fileextension);  
  23.                 var content = File.ReadAllText(filepath);  
  24.                 JObject obj = JObject.Parse(content);  
  25.                 return obj[fieldname].ToString();  
  26.             } catch (Exception e) {  
  27.                 Console.WriteLine(e);  
  28.                 return null;  
  29.             }  
  30.         }  
  31.     }  
  32. }  
 

Step 10

In this step, go to the ViewController.cs page. Write the code given below.

ViewController.cs
  1. using System;  
  2. using UIKit;  
  3. using Newtonsoft.Json.Linq;  
  4. namespace XamariniOSJson {  
  5.     public partial class ViewController: UIViewController {  
  6.         public static string filename = "JsonFile";  
  7.         public static string name = "Name";  
  8.         JObject js = new JObject();  
  9.         protected ViewController(IntPtr handle): base(handle) {  
  10.             // Note: this .ctor should not contain any initialization logic.  
  11.         }  
  12.         public override void ViewDidLoad() {  
  13.             base.ViewDidLoad();  
  14.             // Perform any additional setup after loading the view, typically from a nib.  
  15.         }  
  16.         //Read Json Value Here  
  17.         partial void BtnRead_TouchUpInside(UIButton sender) {  
  18.             lblDisplay.Text = "Name:" + JsonHelper.JsonReader(filename, name);  
  19.         }  
  20.         partial void BtnWrite_TouchUpInside(UIButton sender) {  
  21.             js.Add(name, txtInput.Text);  
  22.             JsonHelper.JsonWrite(filename, js.ToString());  
  23.         }  
  24.         public override void DidReceiveMemoryWarning() {  
  25.             base.DidReceiveMemoryWarning();  
  26.             // Release any cached data, images, etc that aren't in use.  
  27.         }  
  28.     }  
  29. }  
 

Step 11

Now, go to Run option, choose Debug and the list of iPhone and iPad Simulators, which are available. You can choose any one Simulator and run it.
 
 

Output

After a few seconds, the app will start running on your iPhone Simulator. You will see your app is working successfully. You will give any data in an input box and click Write button. The data will be stored in JSON file. You will see your JSON formatted data in your JSON file. You can click Read button and the data will be read successfully.
 
 
Summary

This was the process of how to read JSON in Xamarin iOS, using Xamarin Studio.

Next Recommended Readings