雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊:

實驗?zāi)康?/strong>

在C#和Rest/Restful以及其它的Web服務(wù)交互過程中,大量使用到JSON傳遞數(shù)據(jù),如何快捷的轉(zhuǎn)化C#對象到JSON和轉(zhuǎn)化JSON到C#對象,成為開發(fā)過程中頻繁使用的內(nèi)容。傳統(tǒng)的方式下,我們需要定義和JSON對象同步的C#類并實例化成對象以遍操作,這里提供了一個直接使用匿名類的方式,相較于傳統(tǒng)方式可以少定義一些類,操作更加簡便。

開發(fā)環(huán)境

實現(xiàn)步驟

1.創(chuàng)建工程:控制臺程序,命名為JsonTest

2.添加組件:增加JSON組件

第一步:右鍵點擊項目,選擇“管理NuGet程序包”菜單


第二步:在"NuGet: JsonTest"選項卡中選擇瀏覽,輸入json后回車,選擇Newtonsoft.Json,選擇版本后點擊安裝按鈕。


第三步:完成安裝


3.編寫代碼:簡單結(jié)構(gòu)

JSON格式如下:

{
 "name":"張三",
 "sex":"男",
 "birthday": "2018-02-09"
}

CSharp代碼

using Newtonsoft.Json;
using System;
namespace JsonTest
{
 class Program
 {
  static void Main(string[] args)
  {
   string jsonstr = JsonConvert.SerializeObject(new
   {
    name = "張三",
    sex = "男",
    birthday = "2018-02-09"
   });
   Console.WriteLine("對象序列化后的字符串為:");
   Console.WriteLine(jsonstr);

   Console.WriteLine("\n\n字符串反序列化為對象后的值為:");
   var jsonobj = JsonConvert.DeserializeObject<dynamic>(jsonstr);

   Console.WriteLine("姓名:" + jsonobj.name);
   Console.WriteLine("性別:" + jsonobj.sex);
   Console.WriteLine("生日:" + jsonobj.birthday);
   Console.Read();
  }
 }
}

執(zhí)行結(jié)果


4.編寫代碼:數(shù)組的操作

CSharp代碼

using Newtonsoft.Json;
using System;
namespace JsonTest
{
 class Program
 {
  static void Main(string[] args)
  {
   string jsonstr = JsonConvert.SerializeObject(new[]{
    new {
     name = "張三",
     sex = "男",
     birthday = "2018-02-09"
    },
    new{
     name = "李四",
     sex = "男",
     birthday = "2018-02-09"
    }
   });
   Console.WriteLine("對象序列化后的字符串為:");
   Console.WriteLine(jsonstr);

   Console.WriteLine("\n\n字符串反序列化為對象后的值為:");
   var jsonarr = JsonConvert.DeserializeObject<dynamic[]>(jsonstr);
   foreach (var jsonobj in jsonarr)
   {
    Console.WriteLine("姓名:" + jsonobj.name);
    Console.WriteLine("性別:" + jsonobj.sex);
    Console.WriteLine("生日:" + jsonobj.birthday);
    Console.WriteLine("---------------");
   }
   Console.Read();
  }
 }
}

執(zhí)行結(jié)果

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對我們的支持。

上一篇:C#中的多線程超時處理實踐方案

欄    目:C#教程

下一篇:C#實現(xiàn)JSON解析器MojoUnityJson功能(簡單且高效)

本文標題:C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5280.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有