[Xamarin] 調用JSON.net 來解析JSON

2013-07-09

上一篇文章我們提到了透過WebClient從Facebook 拿到我的JSON資料

Screenshot_2013-07-09-15-00-20

再來我們要怎麼解析JSON格示呢?在.net 中,我們很孰悉的JSON.net,沒錯,我們依然可以在Xamarin中使用他

感謝社群偉大的貢獻 下載網址: http://components.xamarin.com/view/json.net/

2013-07-09_175824 

接續上一個專案我們多引入下載後的 Newtonsoft.Json.dll

2013-07-09_175912

記得要引入Android 下的

2013-07-09_180103

引入後就跟我們平常使用JSON.net 一樣首先我們要為Facebook接回來的資料建立一個相對應的Class

這時候我們可以使用 http://json2csharp.com/ 這網站幫忙

2013-07-09_180131

在專案中建立一個User 的Class

namespace SampleForWebClient
{
    public class User
    {
        public string id { get; set; }
        public string name { get; set; }
        public string first_name { get; set; }
        public string last_name { get; set; }
        public string link { get; set; }
        public string username { get; set; }
        public string gender { get; set; }
        public string locale { get; set; }
    }
}

我們回到主程式


using Android.App;
using Android.Widget;
using Android.OS;
using Newtonsoft.Json;
 
namespace SampleForWebClient
{
    [Activity(Label = "Json.net測試", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
 
            var btnGetData1 = FindViewById<Button>(Resource.Id.btnGetData1);
 
            btnGetData1.Click += btnGetData1_Click;
        }
 
        void btnGetData1_Click(object sender, System.EventArgs e)
        {
            var webClient = new System.Net.WebClient();
            var result = webClient.DownloadString("https://graph.facebook.com/donma.hsu");
            //透過JSON.net 反序列化為User物件
            var user = JsonConvert.DeserializeObject<User>(result);
            //印出 id and name
            Toast.MakeText(this, user.id+":"+user.name, ToastLength.Long).Show();
        }
 
      
    }
}
 

結果:

Screenshot_2013-07-09-18-03-27

是不是很簡單,在Xamarin 下面開發Android 跟過去的體驗是相同的

 

Source :


當麻許的超技八 2014 | Donma Hsu Design.