C# 解析json Newtonsoft.Json
Newtonsoft.Json.dll
- public class ErrorInfo {
- public error_response error_response { get; set; }
- }
- public class error_response
- {
- public string code { get; set; }
- public string zh_desc { get; set; }
- public string en_desc { get; set; }
- }
- //嵌套性数据
- // {"error_response": {"code":"001","zh_desc":"信息无效"}}
- //解析方法一: 解析成一个对象实体
- ErrorInfo obj = (ErrorInfo)JsonConvert.DeserializeObject(jsonText, typeof(ErrorInfo));
- //解析方法二: 解析对象
- JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
- string code = jo["error_response"]["code"].ToString();
- string zone = jo["error_response"]["zh_desc"].ToString();
- /// <summary>
- /// Json帮助类
- /// </summary>
- public class JsonHelper
- {
- private static void InitSetting()
- {
- Newtonsoft.Json.JsonSerializerSettings setting = new Newtonsoft.Json.JsonSerializerSettings();
- JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
- { //日期类型默认格式化处理
- setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
- setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
- //空值处理
- setting.NullValueHandling = NullValueHandling.Ignore;
- return setting;
- });
- }
- /// <summary>
- /// 将对象序列化为JSON格式
- /// </summary>
- /// <param name="o">对象</param>
- /// <returns>json字符串</returns>
- public static string SerializeObject(object o)
- {
- InitSetting();
- string json = JsonConvert.SerializeObject(o);
- return json.Replace("0001/1/1 0:00:00", "");//去除空日期 0001/1/1 0:00:00
- }
- public static object DeserializeObject(string o)
- {
- InitSetting();
- return JsonConvert.DeserializeObject(o);
- }
- public static object DeserializeObject(string o, Type type)
- {
- InitSetting();
- return JsonConvert.DeserializeObject(o, type);
- }
- /// <summary>
- /// 解析JSON字符串生成对象实体
- /// </summary>
- /// <typeparam name="T">对象类型</typeparam>
- /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
- /// <returns>对象实体</returns>
- public static T DeserializeObject<T>(string json) where T : class
- {
- InitSetting();
- object o = JsonConvert.DeserializeObject(json, typeof(T));
- T t = o as T;
- return t;
- }
- }
JsonHelper
C# 解析json Newtonsoft.Json的更多相关文章
- 【转】C#解析Json Newtonsoft.Json
Newtonsoft.Json源码 Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataC ...
- 屌丝技能--转Json(Newtonsoft.Json.dll)
妈妈再也不用为我转Json而担忧了!! 很简单,没什么好说明的,嗯! public class ShowTablePage<T> where T : class, new() { publ ...
- [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- C# 解析 json Newtonsoft果然强大,代码写的真好
C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...
- .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程
JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...
- Newtonsoft.Json 把对象转换成json字符串
var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...
- Newtonsoft.Json 基本用法
Newtonsoft.Json 是.net 开源的一个json格式处理类库 官方网站:http://json.codeplex.com/ 在使用的项目引用Newtonsoft.Json库.平常使用的方 ...
- ASP.NET JSON的序列化和反序列化 之 Newtonsoft.Json
我们用到的类库为:Newtonsoft.Json,通过VS工具中NuGet程序包可以下载. 一:对象转json-序列化 public class Student { public int ID { g ...
随机推荐
- yarn资源调度(网络搜集)
本文转自:http://www.itweet.cn/2015/07/24/yarn-resources-manager-allocation/ Hadoop YARN同时支持内存和CPU两种资源的调度 ...
- android ConnectivityManager 检查是否有网络
一. ConnectivityManager 概要 ConnectivityManager是网络连接相关的管理器,它主要用于查询网络状态并在网络发生改变时发出状态变化通知.这个类主要负责的下列四个 ...
- Swift—下标-备
看下面的示例代码是不是使用过: var studentList: String[] = ["张三","李四","王五"] studentL ...
- 四句话表明JSON格式定义
(1):并列的数据之间使用逗号(",")分割: (2):键值对的映射用冒号(":")表示: (3):并列数据的集合(数组)用方括号("[]" ...
- ural 1106 Two Teams
http://acm.timus.ru/problem.aspx?space=1&num=1106 #include <cstdio> #include <cstring&g ...
- Raid1源代码分析--同步流程
同步的大流程是先读,后写.所以是分两个阶段,sync_request完成第一个阶段,sync_request_write完成第二个阶段.第一个阶段由MD发起(md_do_sync),第二个阶段由守护进 ...
- JAVA 并发实现六(Volatile的使用)
Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量. 这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低 ...
- prototype对象的真正作用
参考阮一峰的文章:http://javascript.ruanyifeng.com/oop/encapsulation.html prototype对象的真正作用 在JavaScript语言中,每一个 ...
- JAVA二维数组小记
入手JAVA第二天 //二维数组 //数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];3 String [][] name = {{"admin",&qu ...
- 如何判断手机收有几张SIM卡
//判断卡槽1中是不是有卡 boolean hasIccCard1 = MSimTelephonyManager.getDefault().hasIccCard(0); //判断卡槽2中是不是有卡 b ...