C# Newtonsoft.Json 的使用说明
我就废话不多说啦,大家还是直接看代码吧~
byte[]bUserInfoSearch=newbyte[1024*10];//10kb大小 Marshal.Copy(lpBuffer,bUserInfoSearch,0,bUserInfoSearch.Length); stringstrUserInfoSearch=System.Text.Encoding.UTF8.GetString(bUserInfoSearch); CUserInfoSearchm_JsonUserInfoSearch=newCUserInfoSearch(); //序列化这个字符串 m_JsonUserInfoSearch=JsonConvert.DeserializeObject(strUserInfoSearch); publicclassCUserInfoSearch { publicCUserInfoSearchContentUserInfoSearch{get;set;} } publicclassCUserInfoSearchContent { publicstringsearchID{get;set;} publicstringresponseStatusStrg{get;set;}//查询状态字符串描述:OK-查询结束,MORE-还有数据等待查询,NOMATCH-没有匹配数据 publicintnumOfMatches{get;set;}//本次返回的记录条数 publicinttotalMatches{get;set;}//符合条件的记录总条数 publicList UserInfo{get;set;}} publicclassCUserInfoContent { publicstringemployeeNo{get;set;} publicstringname{get;set;} publicstringuserType{get;set;} publicboolcloseDelayEnabled{get;set;} publicCVaildValid{get;set;} publicstringbelongGroup{get;set;} publicstringpassword{get;set;} publicstringdoorRight{get;set;} publicList RightPlan{get;set;} publicintmaxOpenDoorTime{get;set;} publicintopenDoorTime{get;set;} publicintroomNumber{get;set;} publicintfloorNumber{get;set;} publicbooldoubleLockRight{get;set;} publicboolalwaysOpenRight{get;set;} publicboollocalUIRight{get;set;} publicstringuserVerifyMode{get;set;} publicboolcheckUser{get;set;} } publicclassCVaild { publicboolenable{get;set;} publicstringbeginTime{get;set;} publicstringendTime{get;set;} publicstringtimeType{get;set;} } publicclassCRightPlan { publicintdoorNo{get;set;} publicstringplanTemplateNo{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实战
上代码~
usingNewtonsoft.Json;
usingNewtonsoft.Json.Linq;
usingSystem.Collections.Generic;
usingSystem.Data;
usingNewtonsoft.Json.Converters;
namespaceDd.Utility
{
publicstaticclassJsonHelper
{
///
///JsonToObject
///
///Json
///Object
publicstaticobjectToObjct(thisstringjson)
{
returnjson==null?null:JsonConvert.DeserializeObject(json);
}
///
///ObjectToJson
///
///Object
///Json
publicstaticstringToJson(thisobjectobj)
{
returnJsonConvert.SerializeObject(obj);
}
///
///JsonToObjectT
///
///
///
///
publicstaticTToObject(thisstringjson)
{
returnjson==null?default(T):JsonConvert.DeserializeObject(json);
}
///
///JsonToList
///
///
///
///
publicstaticListToList(thisstringjson)
{
returnjson==null?null:JsonConvert.DeserializeObject>(json);
}
///
///JsonToTable
///
///
///
publicstaticDataTableJsonToTable(thisstringjson)
{
returnjson==null?null:JsonConvert.DeserializeObject(json);
}
///
///TableToJson
///
///
///
publicstaticstringTableToJson(thisDataTabledataTable)
{
IsoDateTimeConvertertimeFormat=newIsoDateTimeConverter();
timeFormat.DateTimeFormat="yyyy-MM-ddHH:mm:ss";
returndataTable==null?"":JsonConvert.SerializeObject(dataTable,newDataTableConverter(),timeFormat);
}
}
}
varuser=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
/
varuserList=new[]{new{id="1",name="张三",sex="男",age="18"},new{id="2",name="李四",sex="女",age="17"}};
//匿名序列化集合
stringuserSerialize=JsonConvert.SerializeObject(userList);
Console.WriteLine(userSerialize);
//输出结果:[{"id":"1","name":"张三","sex":"男","age":"18"},{"id":"2","name":"李四","sex":"女","age":"17"}]
//匿名反序列化集合
varuserDeserialize=JsonConvert.DeserializeAnonymousType(userSerialize,new[]{new{id="",name="",sex="",age=""}});
foreach(varuserTempinuserDeserialize)
{
Console.Write(userTemp.id+""+userTemp.name+""+userTemp.sex+""+userTemp.age+"|");
}
//输出结果:1张三男18|2李四女17|
/
JArrayjArrayUser=JArray.Parse("[{\"id\":\"1\",\"name\":\"张三\",\"sex\":\"男\",\"age\":\"18\"},{\"id\":\"2\",\"name\":\"李四\",\"sex\":\"女\",\"age\":\"17\"}]");
foreach(JObjectjUserinjArrayUser)
{
Console.Write(jUser["id"].ToString()+""+jUser["name"].ToString()+""+jUser["sex"].ToString()+""+jUser["age"].ToString()+"|");
}
//输出结果:1张三男18|2李四女17|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。