//序列化

string Json字符串 = JsonConvert.SerializeObject(目标对象);

// 字符串转化为对象

   string UserJson = "{\"UNO\":\"1\"," +
" \"UName\":\"龙\"," +
" \"Uage\":\"21\"," +
" \"Uaddress\":\"中国\"," +
" \"Uphone\":\"151 3692 3546\"}";
User Data = JsonConvert.DeserializeObject<User>(UserJson);

//json字符串 转化为List集合

     string jsonText = "{ \"Total\":\"0\"," +
" \"Rows\":" +
"[" +
"{\"UNO\":\"1\"," +
"\"UName\":\"龙\"," +
"\"Uage\":\"21\"," +
"\"Uaddress\":\"中国!\"," +
"\"Uphone\":\"151 3692 3546\"}," + "{\"UNO\":\"1\"," +
"\"UName\":\"龙\"," +
"\"Uage\":\"21\"," +
"\"Uaddress\":\"中国!\"," +
"\"Uphone\":\"151 3692 3546\"}" +
"]}"; //获取索引
int IndexofA = jsonText.IndexOf("[");
int IndexofB = jsonText.IndexOf("]");
//根据索引截取
string str = jsonText.Substring(IndexofA, IndexofB - IndexofA + );
//序列化
List<User> objs = JsonConvert.DeserializeObject<List<User>>(str);

//Json字符串 转化成 DataTable

    string Stringjson = "{ \"Total\":\"0\"," +
" \"Rows\":" +
"[" +
"{\"UNO\":\"1\"," +
"\"UName\":\"龙\"," +
"\"Uage\":\"21\"," +
"\"Uaddress\":\"中国!\"," +
"\"Uphone\":\"151 3692 3546\"}," + "{\"UNO\":\"1\"," +
"\"UName\":\"龙\"," +
"\"Uage\":\"21\"," +
"\"Uaddress\":\"中国!\"," +
"\"Uphone\":\"151 3692 3546\"}" +
"]}"; //获取索引
int IndexofArrayListA = jsonText.IndexOf("[");
int IndexofArrayListB = jsonText.IndexOf("]");
//根据索引截取
string JsonString = Stringjson.Substring(IndexofArrayListA, IndexofArrayListB - IndexofArrayListA + );
List<User> obj = JsonConvert.DeserializeObject<List<User>>(JsonString); System.ComponentModel.PropertyDescriptorCollection properties = System.ComponentModel.TypeDescriptor.GetProperties(typeof(User));
DataTable dt = new DataTable();
for (int i = ; i < properties.Count; i++)
{
System.ComponentModel.PropertyDescriptor property = properties[i];
dt.Columns.Add(property.Name, property.PropertyType);
}
object[] values = new object[properties.Count];
foreach (User item in obj)
{
for (int i = ; i < values.Length; i++)
{
values[i] = properties[i].GetValue(item);
}
dt.Rows.Add(values);
}

//实体对象

 /// <summary>
/// 实体对象
/// </summary>
public class User
{
public string UNO { get; set; }
public string UName { get; set; }
public string Uage { get; set; }
public string Uaddress { get; set; }
public string Uphone { get; set; } }

C# (using Newtonsoft.Json) Json 转换用法小总结的更多相关文章

  1. 记录Newtonsoft.Json的日常用法

    最近在做一个使用基于.net mvc 实现前后台传输Json的实例.网上找了一些资料.发现在开发的时候,许多的数据交互都是以Json格式传输的.其中涉及序列化对象的使用的有DataContractJs ...

  2. C# Newtonsoft.Json解析数组的小例子[转]

    https://blog.csdn.net/Sayesan/article/details/79756738 C# Newtonsoft.Json解析数组的小例子  http://www.cnblog ...

  3. 小程序跳坑之JSON字符串转换JSON对象

    常见的JSON字符串转换有很多,这里只讲我遇到过的小程序中用到的转换. 通常我们在小程序中用到的地方是,请求一个数据表或者请求一个接口,拿到了一堆数据,里面包含有各种字段数组,头像,图片,详情,地址, ...

  4. C#将对象转换成JSON字符串,Newtonsoft.Json (JSON.NET)

    官方API说明文档 http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm http://www.newtonsoft.com/ ...

  5. Newtonsoft.Json 的基本用法

    Ø  前言 说起 C# 对 JSON 的操作(序列化与反序列化),大家都会想到 JavaScriptSerializer.DataContractJsonSerializer 与 Newtonsoft ...

  6. Newtonsoft.Json(Json.Net)学习笔记

    Newtonsoft.Json 在Vs2013中就有自带的: 下面是Json序列化和反序列化的简单封装: /// <summary> /// Json帮助类 /// </summar ...

  7. Newtonsoft.Json(Json.Net)学习笔记(转)

    概述 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库,通过Nuget获取.(查看原文) 下面是Json序列化和反序列化的简单封装: /// <summary&g ...

  8. json 字符串转换成对象,对象转换成json字符串

    json   字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法:   [注意jquery版本问题] var str = '{"name":&qu ...

  9. json datetime转换问题

    我用Newtonsoft.Json.dll转换成json,这次是把一个集合转换成json,这个集合里有个DateTime类型的数据,转换完成后会变成/Date(1286375605000+0800)/ ...

随机推荐

  1. Go Deeper

    Go Deeper Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  2. rsync远程数据同步工具的使用

    准备工作 虚拟机1: 192.168.24.41, 用于搭建rsync服务器 虚拟机2: 192.168.26.68, 用于搭建rsync客户端 虚拟机1和虚拟机2均为centos7; 1. 检查虚拟 ...

  3. Visual formatting model 可视化格式模型

    在可视化格式模型里,每个元素都是由一个或者多个盒子组成,这些盒子的布局由下面规则控制: box dimensions and type.(块元素和行内元素) positioning scheme (n ...

  4. C# 取Visio模型信息的简易方法

    最近的一个项目,要求导出Visio图纸,因为是建筑类的,所以,需要设置墙壁,门,房间等信息的参数. 拿墙壁为例,选中墙壁模型,右键属性,会弹出以下对话框. 需要设置墙长.墙壁厚度等一些列信息. 现在C ...

  5. 收集—— css实现垂直居中

    Method1: 在父元素上设置display:table-cell;vertical-align:middle(父元素不能设置浮动) Method2: 使用flex:父元素设置成display: f ...

  6. 几种常用的ajax 跨域请求

      前 言 首先,我们要明白,什么是跨域,为什么要跨域. 由于JS中存在同源策略.当请求不同协议名不同端口号下面的文件时,将会违背同源策略,无法请求成功!需要进行跨域处理! 这篇文章就为大家详细介绍一 ...

  7. [深度学习]实现一个博弈型的AI,从五子棋开始(1)

    好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...

  8. python视频教程全集

    由于Python语言的简洁.易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经用它来教授程序设计课程.如果你想找python视频教程全集,来这就对了!这是链接: py ...

  9. Python之作用域

    作用域测试例子: >>> a = 10 >>> def test(): ... a = 20 ... print a ... >>> a 10 & ...

  10. Python之signal模块

    http://www.cnblogs.com/dkblog/archive/2011/03/07/1980636.html 1.超时处理 #!/usr/bin/env python2.7 #-*- c ...