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 /// ////// /// publicstaticList ToList (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|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。