Newtonsoft.Json.dll

  1. public class ErrorInfo {
  2. public error_response error_response { get; set; }
  3. }
  4. public class error_response
  5. {
  6. public string code { get; set; }
  7. public string zh_desc { get; set; }
  8. public string en_desc { get; set; }
  9. }

  

  1. //嵌套性数据
  2. // {"error_response": {"code":"001","zh_desc":"信息无效"}}
  3.  
  4. //解析方法一: 解析成一个对象实体
  5. ErrorInfo obj = (ErrorInfo)JsonConvert.DeserializeObject(jsonText, typeof(ErrorInfo));
  6.  
  7. //解析方法二: 解析对象
  8. JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
  9. string code = jo["error_response"]["code"].ToString();
  10. string zone = jo["error_response"]["zh_desc"].ToString();

  

  1. /// <summary>
  2. /// Json帮助类
  3. /// </summary>
  4. public class JsonHelper
  5. {
  6. private static void InitSetting()
  7. {
  8. Newtonsoft.Json.JsonSerializerSettings setting = new Newtonsoft.Json.JsonSerializerSettings();
  9. JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
  10. { //日期类型默认格式化处理
  11. setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
  12. setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
  13. //空值处理
  14. setting.NullValueHandling = NullValueHandling.Ignore;
  15.  
  16. return setting;
  17. });
  18. }
  19.  
  20. /// <summary>
  21. /// 将对象序列化为JSON格式
  22. /// </summary>
  23. /// <param name="o">对象</param>
  24. /// <returns>json字符串</returns>
  25. public static string SerializeObject(object o)
  26. {
  27. InitSetting();
  28. string json = JsonConvert.SerializeObject(o);
  29. return json.Replace("0001/1/1 0:00:00", "");//去除空日期 0001/1/1 0:00:00
  30. }
  31. public static object DeserializeObject(string o)
  32. {
  33. InitSetting();
  34. return JsonConvert.DeserializeObject(o);
  35. }
  36. public static object DeserializeObject(string o, Type type)
  37. {
  38. InitSetting();
  39. return JsonConvert.DeserializeObject(o, type);
  40. }
  41.  
  42. /// <summary>
  43. /// 解析JSON字符串生成对象实体
  44. /// </summary>
  45. /// <typeparam name="T">对象类型</typeparam>
  46. /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
  47. /// <returns>对象实体</returns>
  48. public static T DeserializeObject<T>(string json) where T : class
  49. {
  50. InitSetting();
  51. object o = JsonConvert.DeserializeObject(json, typeof(T));
  52. T t = o as T;
  53. return t;
  54. }
  55.  
  56. }

JsonHelper

C# 解析json Newtonsoft.Json的更多相关文章

  1. 【转】C#解析Json Newtonsoft.Json

    Newtonsoft.Json源码 Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataC ...

  2. 屌丝技能--转Json(Newtonsoft.Json.dll)

    妈妈再也不用为我转Json而担忧了!! 很简单,没什么好说明的,嗯! public class ShowTablePage<T> where T : class, new() { publ ...

  3. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法

    Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...

  4. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  5. C# 解析 json Newtonsoft果然强大,代码写的真好

    C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...

  6. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  7. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  8. Newtonsoft.Json 基本用法

    Newtonsoft.Json 是.net 开源的一个json格式处理类库 官方网站:http://json.codeplex.com/ 在使用的项目引用Newtonsoft.Json库.平常使用的方 ...

  9. ASP.NET JSON的序列化和反序列化 之 Newtonsoft.Json

    我们用到的类库为:Newtonsoft.Json,通过VS工具中NuGet程序包可以下载. 一:对象转json-序列化 public class Student { public int ID { g ...

随机推荐

  1. yarn资源调度(网络搜集)

    本文转自:http://www.itweet.cn/2015/07/24/yarn-resources-manager-allocation/ Hadoop YARN同时支持内存和CPU两种资源的调度 ...

  2. android ConnectivityManager 检查是否有网络

    一.   ConnectivityManager 概要 ConnectivityManager是网络连接相关的管理器,它主要用于查询网络状态并在网络发生改变时发出状态变化通知.这个类主要负责的下列四个 ...

  3. Swift—下标-备

    看下面的示例代码是不是使用过: var studentList: String[]  = ["张三","李四","王五"] studentL ...

  4. 四句话表明JSON格式定义

    (1):并列的数据之间使用逗号(",")分割: (2):键值对的映射用冒号(":")表示: (3):并列数据的集合(数组)用方括号("[]" ...

  5. ural 1106 Two Teams

    http://acm.timus.ru/problem.aspx?space=1&num=1106 #include <cstdio> #include <cstring&g ...

  6. Raid1源代码分析--同步流程

    同步的大流程是先读,后写.所以是分两个阶段,sync_request完成第一个阶段,sync_request_write完成第二个阶段.第一个阶段由MD发起(md_do_sync),第二个阶段由守护进 ...

  7. JAVA 并发实现六(Volatile的使用)

    Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量. 这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低 ...

  8. prototype对象的真正作用

    参考阮一峰的文章:http://javascript.ruanyifeng.com/oop/encapsulation.html prototype对象的真正作用 在JavaScript语言中,每一个 ...

  9. JAVA二维数组小记

    入手JAVA第二天 //二维数组 //数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];3 String [][] name = {{"admin",&qu ...

  10. 如何判断手机收有几张SIM卡

    //判断卡槽1中是不是有卡 boolean hasIccCard1 = MSimTelephonyManager.getDefault().hasIccCard(0); //判断卡槽2中是不是有卡 b ...