//序列化

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. Javascript的RegExp对象(转载自网络)

    正则表达式是一个描述字符模式的对象. JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. '***************** ...

  2. javascript中数组与字符串之间的转换以及字符串的替换

    数组转化为字符串: var a=['aa','bb','cc']; var b=a.join('-'); console.log(b)----->'aa-bb-cc' 字符串中的替换: 1.re ...

  3. JavaScript Function.arguments 属性详解

    语法 [functionObject.]arguments arguments属性是正在执行的函数的内置属性,返回该函数的arguments对象.arguments对象包含了调用该函数时所传入的实际参 ...

  4. Python通过跳板机链接MySQL的一种方法

  5. CSS3 动画 animation和@keyframes

    CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式 ...

  6. vue 响应式原理

    Vue 采用声明式编程替代过去的类 Jquery 的命令式编程,并且能够侦测数据的变化,更新视图.这使得我们可以只关注数据本身,而不用手动处理数据到视图的渲染,避免了繁琐的 DOM 操作,提高了开发效 ...

  7. 全球领先的redis客户端:SFedis

    零.背景 这个客户端起源于我们一个系统的生产问题. 一.问题的发生 在我们的生产环境上发生了两次redis服务端连接数达到上限(我们配置的单节点连接数上限为8000)导致无法创建连接的情况.由于这个系 ...

  8. Python的property装饰器的基本用法

    Python的@property装饰器用来把一个类的方法变成类的属性调用,然后@property本身又创建了另一个装饰器,用一个方法给属性赋值.下面是在类中使用了@property后,设置类的读写属性 ...

  9. C#中简单的this与get的用法(string,decimal)

    代码 namespace First{publicpartialclass Form1 : Form{public Form1(){InitializeComponent();} privatevoi ...

  10. Redis全面介绍

    最近重新认识了一下Redis,借着这个机会,也整理一篇算是比较详尽和全面的文章吧.   缓存 缓存就是数据交换的缓冲区(称作Cache)——摘自百度百科.无论是在计算机硬件体系结构还是软件体系结构中, ...