C# Newtonsoft.Json 的使用说明

我就废话不多说啦,大家还是直接看代码吧~

byte[] bUserInfoSearch = new byte[1024 * 10]; //10kb大小
   Marshal.Copy(lpBuffer, bUserInfoSearch, 0, bUserInfoSearch.Length);
   string strUserInfoSearch = System.Text.Encoding.UTF8.GetString(bUserInfoSearch);
   CUserInfoSearch m_JsonUserInfoSearch = new CUserInfoSearch();
   //序列化这个字符串
   m_JsonUserInfoSearch = JsonConvert.DeserializeObject<CUserInfoSearch>(strUserInfoSearch);
  public class CUserInfoSearch
  {
   public CUserInfoSearchContent UserInfoSearch { get; set; }
  }
  public class CUserInfoSearchContent
  {
   public string searchID { get; set; }
   public string responseStatusStrg { get; set; } //查询状态字符串描述: OK-查询结束, MORE-还有数据等待查询, NO MATCH-没有匹配数据
   public int numOfMatches { get; set; } //本次返回的记录条数
       
   public int totalMatches { get; set; } //符合条件的记录总条数
public List<CUserInfoContent> UserInfo { get; set; } }
 public class CUserInfoContent
  {
   public string employeeNo { get; set; }
   public string name { get; set; }
   public string userType { get; set; }
   public bool closeDelayEnabled { get; set; }
   public CVaild Valid { get; set; }
   public string belongGroup { get; set; }
   public string password { get; set; }
   public string doorRight { get; set; }
   public List<CRightPlan> RightPlan { get; set; }
   public int maxOpenDoorTime { get; set; }
   public int openDoorTime { get; set; }
   public int roomNumber { get; set; }
   public int floorNumber { get; set; }
   public bool doubleLockRight { get; set; }
   public bool alwaysOpenRight { get; set; }
   public bool localUIRight { get; set; }
   public string userVerifyMode { get; set; }
   public bool checkUser { get; set; }
  }
  public class CVaild
  {
   public bool enable { get; set; }
   public string beginTime { get; set; }
   public string endTime { get; set; }
   public string timeType { get; set; }
  }
  public class CRightPlan
  {
   public int doorNo { get; set; }
   public string planTemplateNo { get; set; }
  }

json字符串为

{
 "UserInfoSearch": {
  "searchID": "1",
  "responseStatusStrg": "MORE",
  "numOfMatches": 2,
  "totalMatches": 4,
  "UserInfo": [{
    "employeeNo": "1",
    "name": "管理员(131374",
    "userType": "normal",
    "closeDelayEnabled": false,
    "Valid": {
     "enable": false,
     "beginTime": "0-00-00T00:00:00",
     "endTime": "0-00-00T00:00:00",
     "timeType": "local"
    },
    "belongGroup": "",
    "password": "",
    "doorRight": "1",
    "RightPlan": [{
      "doorNo": 1,
      "planTemplateNo": "1"
     }],
    "maxOpenDoorTime": 0,
    "openDoorTime": 0,
    "roomNumber": 1,
    "floorNumber": 1,
    "localUIRight": false,
    "numOfCard": 0,
    "numOfFP": 0,
    "numOfFace": 0
   }, {
    "employeeNo": "2",
    "name": "123456",
    "userType": "normal",
    "closeDelayEnabled": false,
    "Valid": {
     "enable": false,
     "beginTime": "0-00-00T00:00:00",
     "endTime": "0-00-00T00:00:00",
     "timeType": "local"
    },
    "belongGroup": "",
    "password": "",
    "doorRight": "1",
    "RightPlan": [{
      "doorNo": 1,
      "planTemplateNo": "1"
     }],
    "maxOpenDoorTime": 0,
    "openDoorTime": 0,
    "roomNumber": 1,
    "floorNumber": 1,
    "localUIRight": false,
    "numOfCard": 0,
    "numOfFP": 0,
    "numOfFace": 1
   }]
 }
}

补充:C#使用NewtonSoft操作Json实战

上代码~

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;
using Newtonsoft.Json.Converters;
namespace Dd.Utility
{
  public static class JsonHelper
  {
    /// <summary>
    /// Json To Object
    /// </summary>
    /// <param name="json">Json</param>
    /// <returns>Object</returns>
    public static object ToObjct(this string json)
    {
      return json == null ? null : JsonConvert.DeserializeObject(json);
    }
    /// <summary>
    /// Object To Json
    /// </summary>
    /// <param name="obj">Object</param>
    /// <returns>Json</returns>
    public static string ToJson(this object obj)
    {
      return JsonConvert.SerializeObject(obj);
    }
    /// <summary>
    /// Json To Object T
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="Json"></param>
    /// <returns></returns>
    public static T ToObject<T>(this string json)
    {
      return json == null ? default(T) : JsonConvert.DeserializeObject<T>(json);
    }
    /// <summary>
    /// Json To List
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="Json"></param>
    /// <returns></returns>
    public static List<T> ToList<T>(this string json)
    {
      return json == null ? null : JsonConvert.DeserializeObject<List<T>>(json);
    }
    /// <summary>
    /// Json To Table
    /// </summary>
    /// <param name="Json"></param>
    /// <returns></returns>
    public static DataTable JsonToTable(this string json)
    {
      return json == null ? null : JsonConvert.DeserializeObject<DataTable>(json);
    }

    /// <summary>
    /// Table To Json
    /// </summary>
    /// <param name="dataTable"></param>
    /// <returns></returns>
    public static string TableToJson(this DataTable dataTable)
    {
      IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
      timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
      return dataTable == null ? "" : JsonConvert.SerializeObject(dataTable, new DataTableConverter(), timeFormat);
    }
  }
}
	var user = new { id = "", name = "", sex = "", age = "" };
	user = JsonConvert.DeserializeAnonymousType("{\"id\":\"1\",\"name\":\"张三\",\"sex\":\"男\",\"age\":\"18\"}", user);

	Console.WriteLine(user.id + " " + user.name + " " + user.sex + " " + user.age);
	//输出结果:1 张三 男 18

	/

	var userList = new[] { new { id = "1", name = "张三", sex = "男", age = "18" }, new { id = "2", name = "李四", sex = "女", age = "17" } };

	//匿名序列化集合
	string userSerialize = JsonConvert.SerializeObject(userList);
	Console.WriteLine(userSerialize);
	//输出结果:[{"id":"1","name":"张三","sex":"男","age":"18"},{"id":"2","name":"李四","sex":"女","age":"17"}]

	//匿名反序列化集合
	var userDeserialize = JsonConvert.DeserializeAnonymousType(userSerialize, new[] { new { id = "", name = "", sex = "", age = "" } });
	foreach (var userTemp in userDeserialize)
	{
		Console.Write(userTemp.id + " " + userTemp.name + " " + userTemp.sex + " " + userTemp.age+" | ");
	}
	//输出结果:1 张三 男 18 | 2 李四 女 17 | 

	/

	JArray jArrayUser = JArray.Parse("[{\"id\":\"1\",\"name\":\"张三\",\"sex\":\"男\",\"age\":\"18\"},{\"id\":\"2\",\"name\":\"李四\",\"sex\":\"女\",\"age\":\"17\"}]");
	foreach (JObject jUser in jArrayUser)
	{
		Console.Write(jUser["id"].ToString() + " " + jUser["name"].ToString() + " " + jUser["sex"].ToString() + " " + jUser["age"].ToString() + " | ");
	}
	//输出结果:1 张三 男 18 | 2 李四 女 17 | 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • c# Newtonsoft 六个值得使用的特性(上)

    一:讲故事 看完官方文档,阅读了一些 Newtonsoft 源码,对它有了新的认识,先总结 六个超经典又实用的特性,同大家一起分享,废话不多说,快来一起看看吧~~~ 二:特性分析 1. 代码格式化 如果你直接使用 JsonConvert.SerializeObject的话,默认情况下所有的json是挤压在一块的,特别不方便阅读,如下所示: static void Main(string[] args) { var reportModel = new ReportModel() { Product

  • c#添加Newtonsoft.Json包的操作

    C#使用json 点击工具 - NuGet包管理器 - 程序包管理控制台,输入下面命令: Install-Package Newtonsoft.Json 即可使用Newtonsoft.Json 包进行json操作 PM> Install-Package Newtonsoft.Json 正在尝试收集与目标为".NETFramework,Version=v4.0"的项目"QiniuTests"有关的包"Newtonsoft.Json.11.0.2&quo

  • c# Newtonsoft 六个值得使用的特性(下)

    一:讲故事 上一篇介绍的 6 个特性从园子里的反馈来看效果不错,那这一篇就再带来 6 个特性同大家一起欣赏. 二:特性分析 1. 像弱类型语言一样解析 json 大家都知道弱类型的语言有很多,如: nodejs,python,php,它们有一个

  • C# Newtonsoft.Json 的使用说明

    我就废话不多说啦,大家还是直接看代码吧~ byte[] bUserInfoSearch = new byte[1024 * 10]; //10kb大小 Marshal.Copy(lpBuffer, bUserInfoSearch, 0, bUserInfoSearch.Length); string strUserInfoSearch = System.Text.Encoding.UTF8.GetString(bUserInfoSearch); CUserInfoSearch m_JsonUse

  • 在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍

    全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化为对象 目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象)); //把目标对象序列化为Json字符串 stringJson字符串 = JavaScriptConvert.SerializeObject(目标对象); 1.引用Newtonsoft.Json.dll: 2.

  • newtonsoft.json解析天气数据出错解决方法

    今天用NewtonSoft.JSon解析一个天气数据,数据格式如: 复制代码 代码如下: {"status":1,"detail":"\u6570\u636e\u83b7\u53d6\u6210\u529f","data":[[{"date":"2014-01-01","dis_id":"1119","dis_name":&qu

  • C# Newtonsoft.Json 解析多嵌套json 进行反序列化的实例

    我就废话不多说啦,大家还是直接看代码吧~ [ { "orderNo": "3213123123123", "time": "2016-09-09 12:23:33", "orderStatus": "1", "freeShipping": true, "fullCut": 20, "originalCost": 340, &qu

  • c# Newtonsoft.Json 常用方法总结

    1 实体类的 Json 序列化和反序列化 我们以如下的 Person 类举例,其中包含了常用的数据类型: public class Person { public int ID { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } public bool IsVIP { get; set; } public float Account { get; set; } public s

  • C# newtonsoft.json中文乱码问号的解决方案

    目录 C# newtonsoft.json中文乱码问号 C# NewtonJson使用技巧 C# newtonsoft.json中文乱码问号 发送方在序列化json时这样写,比如将gameinfo类序列化成json: string jsonstr=JsonConvert.SerializeObject(gameinfo, new JsonSerializerSettings() { StringEscapeHandling = StringEscapeHandling.EscapeNonAsci

  • C#使用Newtonsoft.Json中的JObject对象

    案例1 json {     "Name": "Jack",     "Age": 34,     "Colleagues": [{         "Name": "Tom",         "Age": 44     }, {         "Name": "Abel",         "Age":

  • Javascript笔记一 js以及json基础使用说明

    JavaScript中的代码只体现为一种形式,就是function. 注意:以上单词都是小写的,不要和Number, String, Object, Function等JavaScript内置函数混淆,JavaScript语言是区分大小写. typeof(null)返回object,但null并非object. JavaScript的代码就只有function一种形式,function就是函数的类型.函数的写法有"定义式"和"变量式". 定义式的函数语句会优先执行.

  • json的定义、标准格式及json字符串检验

    现在越来越多的项目和开发插件等默认都会支持和使用json数据格式,作为数据保持.传输的一种方式. 说是其中一种,就标示还有好多其他格式.比如:最多是xml.webservice的标准数据格式. 不过由于json是JavaScript 对象表示法(JavaScript Object Notation),天生就对js支持很好, 所以现在很多的ajax等都使用json,反而会更好处理一些. 1.定义 什么是 JSON ?1.JSON 指的是 JavaScript 对象表示法(JavaScript Ob

随机推荐