导航目录:

  Newtonsoft.Json 概述

  一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型;

    二:C#对象、集合、DataTable与Json内容互转示例;

  三:C#对象转换Json时的一些高级(特殊)设置;

这个过程没有什么需要说的,撸个简单一点的代码说明下:先定义一个人员类,这个类里面的属性有string,int,list,枚举,这几个差不多够了。

public class people
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
public EnumGender Gender { get; set; }
public List<string> hobby{ get; set; }
}
public enum EnumGender
{
woman,
male
}

 

【这部分代码此系列的其它几个示例中都会用到】

  • C# 对象转Json 示例:
PeopleInfo p = new PeopleInfo();
p.Name = "李家村的二狗子";
p.Age = ;
p.Birthday = DateTime.Now;
p.Gender = EnumGender.male;
p.Hobby = new List<string> { "写Bug", "钓鱼", "看新闻联播" }; string json = JsonConvert.SerializeObject(p);
this.txtResult.Text = json;

序列化后的Json内容:

  • Json 转C# 对象 示例:
string json = "{\"Name\":\"李家村的二狗子\",\"Age\":30,\"Birthday\":\"2019-01-12T17:55:39.8176013+08:00\",\"Gender\":1,\"Hobby\":[\"写Bug\",\"钓鱼\",\"看新闻联播\"]}";

PeopleInfo info = JsonConvert.DeserializeObject<PeopleInfo>(json); this.txtResult.Text = "名称:" + info.Name;

  • List集合转Json示例:
private void btnJsonDemo_Click(object sender, EventArgs e)
{
List<PeopleInfo> list = new List<PeopleInfo>(); PeopleInfo p = new PeopleInfo();
p.Name = "张三";
p.Age = ;
p.Birthday = DateTime.Now;
p.Gender = EnumGender.male;
p.Hobby = new List<string> { "写Bug", "钓鱼", "看新闻联播" }; PeopleInfo p1 = new PeopleInfo();
p1.Name = "李四";
p1.Age = ;
p1.Birthday = DateTime.Now;
p1.Gender = EnumGender.male;
p1.Hobby = new List<string> { "读书", "写字", "打游戏" }; list.Add(p);
list.Add(p1); string json = JsonConvert.SerializeObject(list);
this.txtResult.Text = json;
}

转换后的结果:

  • Json 转键值对 示例:
string json = @“{” “key1” “:” “value1” “,” “key2” “:” “value2” “}” ; 

Dictionary < string,string > values = JsonConvert.DeserializeObject <Dictionary < string,string >>(json);

  拓展需求:C# 中对象转键值对的方式有很多种,Json转键值对直接通过反序列化就可以了,所以,曲线救国一下,可以先将对象转成Json,然后在将Json转换为键值对:

  【如果通过这种方式对象-Json-键值对 来实现对象键值对的转换,如果对象中有list集合属性,就会导致转换错误,目前这个问题我还没有解决,等解决了在来补充解决方法,颜色标记红色提醒下我自己】

  • DataTable转Json 示例:

  代码就不写了,方法一样,就是把DataTable传入至 JsonConvert.SerializeObject(DataTable tb) 中就可以了。

二:C#对象、集合、DataTable与Json内容互转示例;的更多相关文章

  1. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  2. JSon_零基础_005_将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写:po(bean)代码: package com.west.webcourse.po; /** * 第 ...

  3. DataTable 和Json 字符串互转

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  4. 使用FastJSON,将对象或数组和JSON串互转

    Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...

  5. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  6. [C#]Datatable和json互相转换操作

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  7. DataTable和Json的相互转换

    1 #region DataTable 转换为Json字符串实例方法 2 /// <summary> 3 /// GetClassTypeJosn 的摘要说明 4 /// </sum ...

  8. [Android学习]Activity之间传递对象和对象集合

    开发过程中,Activity之间传递数据是必不可少的,android中使用Intent和Bundle作为数据载体,在Activity之间传递,对于基础数据类型,Bundle已经提供相关的put,get ...

  9. Datatable转换为Json 然后,Json数据导入 js 档

    C#在里面Datatable转换为Json的5代码示例 /// <summary> /// Datatable转换为Json /// </summary> /// <pa ...

随机推荐

  1. JVM总括三-字节码、字节码指令、JIT编译执行

    JVM总括三-字节码.字节码指令.JIT编译执行 目录:JVM总括:目录 java文件编译后的class文件,java跨平台的中间层,JVM通过对字节码的解释执行(执行模式,还有JIT编译执行,下面讲 ...

  2. SkyWalking Liunx 环境搭建&NetCore接入

    背景 前两天看见有小哥介绍windows下安装skywalking的介绍地址在这. 正好最近也在搭建linux环境的SkyWalking,顺便把linux环境搭建的经验分享下,帮助下使用linux部署 ...

  3. Wechart 饼图

    预览 Preview | Usage Source | Pie Source | Tutorial Wechart by Cax Cax 众所周知 Cax 既能开发游戏.又能开发图表.本文将从饼图开始 ...

  4. [UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)

    1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多.不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好 ...

  5. MYSQL中SUM (IF())

    今天一个朋友突然给我发过来一个sql语句,一下子问住我了. 我想,这种语法木有见过呀.我就查了查,才明白什么意思,原来是mysql里面的用法. SUM(IF(`hosts`.state = 0, 1, ...

  6. (第十三周)Final Review会议

    项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 Final Review会议 时间:2016.12.2   13:00——15:00 地点:冬华楼一楼大厅 会 ...

  7. [2019BUAA软工助教]答黄杉同学

    [2019BUAA软工助教]答黄杉同学 一.答黄杉同学 011-黄衫博客 我当然不否认软件工程的各种博客是有一定作用的,但是相信大多数人对诸如例会博客并没有什么热情(不过似乎也没有什么其他方法保证团队 ...

  8. 我们为什么要使用List和Set(List,Set详解)

    1.集合概述 类图 集合和数组的区别? 集合基本方法 集合特有的遍历方式? public static void main(String[] args) { //创建集合对象 Collection c ...

  9. jquery中ajax使用

    JQuery的Ajax操作,对JavaScript底层Ajax操作进行了封装, <script type="text/javascript"> $.ajax({ url ...

  10. ES6学习之let

    块级作用域 ; i < ; i++){} console.log(i); ; j < ; j++){} console.log(j); //"ReferenceError: j ...