亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實現(xiàn)JSON和對象之間互相轉(zhuǎn)換功能示例

 更新時間:2017年09月01日 11:35:59   作者:GhostRider  
這篇文章主要介紹了C#實現(xiàn)JSON和對象之間互相轉(zhuǎn)換功能,結(jié)合實例形式較為詳細(xì)的分析了C#實現(xiàn)對象與json之間相互轉(zhuǎn)換的操作技巧,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)JSON和對象之間互相轉(zhuǎn)換功能。分享給大家供大家參考,具體如下:

1.首先是聲明用戶信息對象,DataContract修飾類,表示可以被解析成JSON,DataMember修飾屬性,Order表示 解析的順序,另外Lover是數(shù)組列表,表示女朋友個數(shù)

Address 表示送貨地址,DailyRecord  表示日常記錄

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace FunctionTest.Model
{
  [DataContract]
  public class UserInfo
  {
    [DataMember(Order =0)]
    public string UserName { get; set; }
    [DataMember(Order = 1)]
    public int Age { get; set; }
    [DataMember(Order = 2)]
    public int Gender { get; set; }
    [DataMember(Order =3)]
    public List<string> Lover { get; set; }
    [DataMember(Order = 4)]
    public ContactAddress Address { get; set; }
    [DataMember(Order = 5)]
    public Dictionary<string, string> DailyRecord {
      get; set;
    }
  }
  [DataContract]
  public class ContactAddress
  {
    [DataMember(Order =0)]
    public string Province { get; set; }
    [DataMember(Order = 1)]
    public string City { get; set; }
    [DataMember(Order = 2)]
    public string Country { get; set; }
    [DataMember(Order = 3)]
    public string Details { get; set; }
  }
}

2.JSON幫助類 核心代碼

/// <summary>
/// Json轉(zhuǎn)換成對象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonText"></param>
/// <returns></returns>
public static T JsonToObject<T>(string jsonText)
{
  DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));
  MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText));
  T obj = (T)s.ReadObject(ms);
  ms.Dispose();
  return obj;
}
/// <summary>
/// 對象轉(zhuǎn)換成JSON
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string ObjectToJSON<T>(T obj)
{
  DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
  string result = string.Empty;
  using (MemoryStream ms = new MemoryStream())
  {
    serializer.WriteObject(ms, obj);
    ms.Position = 0;
    using (StreamReader read = new StreamReader(ms))
    {
      result = read.ReadToEnd();
    }
  }
  return result;
}

3.調(diào)用

//1.對象-->JSON
UserInfo info = new UserInfo
{
    Age = 10,
    Gender = 1,
    UserName = "劉德華",
    Lover = new List<string> { "美女1", "美女2", "美女3" },
    Address = new ContactAddress
    {
      Province = "湖南省",
      City = "長沙市",
      Country = "望城縣",
      Details = "某旮旯快遞找不到的地方"
    },
    DailyRecord = new Dictionary<string, string> { { "星期一", "吃飯" }, { "星期二", "洗衣服" }, { "星期三", "好事情" } }
};
string json = ObjectToJSON<UserInfo>(info);

4.反序列化后的結(jié)果

復(fù)制代碼 代碼如下:
{"UserName":"劉德華","Age":10,"Gender":1,"Lover":["美女1","美女2","美女3"],"Address":{"Province":"湖南省","City":"長沙市","Country":"望城縣","Details":"某旮旯快遞找不到的地方"},"DailyRecord":[{"Key":"星期一","Value":"吃飯"},{"Key":"星期二","Value":"洗衣服"},{"Key":"星期三","Value":"好事情"}]}

PS:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans

更多關(guān)于C#相關(guān)內(nèi)容還可查看本站專題:《C#字符串操作技巧總結(jié)》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#程序設(shè)計之線程使用技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程

希望本文所述對大家C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#實現(xiàn)解析JSON的示例詳解

    C#實現(xiàn)解析JSON的示例詳解

    這篇文章主要為大家詳細(xì)介紹了使用C#實現(xiàn)解析JSON的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Unity實現(xiàn)已知落點和速度自動計算發(fā)射角度

    Unity實現(xiàn)已知落點和速度自動計算發(fā)射角度

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)已知落點和速度自動計算發(fā)射角度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C#實現(xiàn)兩個時間相減的方法

    C#實現(xiàn)兩個時間相減的方法

    這篇文章主要介紹了C#實現(xiàn)兩個時間相減的方法,實例分析了C#針對時間操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • C#多線程學(xué)習(xí)之Thread、ThreadPool、Task、Parallel四者區(qū)別

    C#多線程學(xué)習(xí)之Thread、ThreadPool、Task、Parallel四者區(qū)別

    這篇文章主要以一些簡單的小例子,簡述多線程的發(fā)展歷程:Thread,ThreadPool,Task,Parallel。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#多線程有一定幫助,需要的朋友可以參考一下
    2021-12-12
  • C# Winform 實現(xiàn)TCP發(fā)消息

    C# Winform 實現(xiàn)TCP發(fā)消息

    這篇文章主要介紹了C# Winform 實現(xiàn)TCP發(fā)消息的示例,幫助大家更好的理解和學(xué)習(xí)使用c#技術(shù),感興趣的朋友可以了解下
    2021-03-03
  • Unity UI拖拽模型選擇功能

    Unity UI拖拽模型選擇功能

    這篇文章主要為大家詳細(xì)介紹了Unity UI拖拽模型選擇功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C#中DataTable的創(chuàng)建與遍歷實現(xiàn)

    C#中DataTable的創(chuàng)建與遍歷實現(xiàn)

    這篇文章主要介紹了C#中DataTable的創(chuàng)建與遍歷實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C# JSON格式化轉(zhuǎn)換輔助類 ConvertJson

    C# JSON格式化轉(zhuǎn)換輔助類 ConvertJson

    本文介紹使用C#原生代碼實現(xiàn) JSON格式化以及各種類型轉(zhuǎn)化JSON的輔助類,幫助開發(fā)人員快速開發(fā)。
    2016-04-04
  • C#微信開發(fā)第一章

    C#微信開發(fā)第一章

    這篇文章主要為大家詳細(xì)介紹了C#微信開發(fā)第一章,很有參考價值和實用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#的FileInfo類實現(xiàn)文件操作實例

    C#的FileInfo類實現(xiàn)文件操作實例

    這篇文章主要介紹了C#的FileInfo類實現(xiàn)文件操作實例,比較實用的功能,需要的朋友可以參考下
    2014-07-07

最新評論