这篇文章主要介绍了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 |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持得得之家。如有错误或未考虑完全的地方,望不吝赐教。
沃梦达教程
本文标题为:C# Newtonsoft.Json 的使用说明
基础教程推荐
猜你喜欢
- C#控制台实现飞行棋小游戏 2023-04-22
- unity实现动态排行榜 2023-04-27
- C#类和结构详解 2023-05-30
- C# List实现行转列的通用方案 2022-11-02
- ZooKeeper的安装及部署教程 2023-01-22
- C# 调用WebService的方法 2023-03-09
- 一个读写csv文件的C#类 2022-11-06
- winform把Office转成PDF文件 2023-06-14
- C# windows语音识别与朗读实例 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26