问题描述
下面是一串json串我想把它转成(序列化)对象,简单的我可以转但是这个我头疼了这要建几个Class啊{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2","OPENID3"...]},"next_openid":"NEXT_OPENID"}
解决方案
解决方案二:
转成实体类
解决方案三:
这哪需要你自己搞网上开源的一大堆
解决方案四:
引用2楼u011710947的回复:
这哪需要你自己搞网上开源的一大堆
引用后直接varobj=Newtonsoft.Json.JsonConvert.DeserializeObject(json);
解决方案五:
publicclassInfo{publicstringtotal{get;set;}publicstringcount{get;set;}publicDatadata{get;set;}publicstringnext_openid{get;set;}}publicclassData{publicList<string>openid;}
解决方案六:
引用3楼u011710947的回复:
Quote: 引用2楼u011710947的回复:
这哪需要你自己搞网上开源的一大堆引用后直接varobj=Newtonsoft.Json.JsonConvert.DeserializeObject(json);
公司不让用这些东西
解决方案七:
引用4楼landy1023的回复:
publicclassInfo{publicstringtotal{get;set;}publicstringcount{get;set;}publicDatadata{get;set;}publicstringnext_openid{get;set;}}publicclassData{publicList<string>openid;}
类我建好了但是用什么方法对json转成对象呢?
解决方案八:
泛型ListDictionary
解决方案九:
引用5楼muguaigun的回复:
公司不让用这些东西
辞职吧...我在想你的bin下是否连DLL都没有或者说你连bin都没有...
解决方案十:
引用5楼muguaigun的回复:
Quote: 引用3楼u011710947的回复:
Quote: 引用2楼u011710947的回复:
这哪需要你自己搞网上开源的一大堆引用后直接varobj=Newtonsoft.Json.JsonConvert.DeserializeObject(json);
公司不让用这些东西
用微软自己的DataContractJsonSerializer参考:SerializingandDeserializingJSONinC#msdn的解释:
解决方案十一:
引用6楼muguaigun的回复:
Quote: 引用4楼landy1023的回复:
publicclassInfo{publicstringtotal{get;set;}publicstringcount{get;set;}publicDatadata{get;set;}publicstringnext_openid{get;set;}}publicclassData{publicList<string>openid;}类我建好了但是用什么方法对json转成对象呢?
publicstaticstringSerialize<T>(Tobj){DataContractJsonSerializerserializer=newDataContractJsonSerializer(obj.GetType());MemoryStreamms=newMemoryStream();serializer.WriteObject(ms,obj);stringretVal=Encoding.UTF8.GetString(ms.ToArray());returnretVal;}publicstaticTDeserialize<T>(stringjson){Tobj=Activator.CreateInstance<T>();MemoryStreamms=newMemoryStream(Encoding.Unicode.GetBytes(json));DataContractJsonSerializerserializer=newDataContractJsonSerializer(obj.GetType());obj=(T)serializer.ReadObject(ms);ms.Close();returnobj;}来自:HowtoConvertJSONobjecttoCustomC#object?
解决方案十二:
引用6楼muguaigun的回复:
Quote: 引用4楼landy1023的回复:
publicclassInfo{……}publicclassData{publicList<string>openid;}类我建好了但是用什么方法对json转成对象呢?
引入usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;然后Infoinfo=JsonConvert.DeserializeObject<Info>(str);如果公司不让用Newtonsoft,就直接用自带的,usingSystem.Web.Script.Serialization;privateJavaScriptSerializermyscript=newJavaScriptSerializer();Infoinfo=myscript.Deserialize<Info>(str);
解决方案十三:
引用5楼muguaigun的回复:
Quote: 引用3楼u011710947的回复:
Quote: 引用2楼u011710947的回复:
这哪需要你自己搞网上开源的一大堆引用后直接varobj=Newtonsoft.Json.JsonConvert.DeserializeObject(json);
公司不让用这些东西
不会有哪个公司不让用这个的吧~~到底是你认为公司不让用呢?还是真的不给用~~你可以找个旁边的问问~~
解决方案十四:
引用5楼muguaigun的回复:
公司不让用这些东西
关于json网上源码一大堆。。。。不让引别人的dll,你抄个源代码就行了。。。还有你们公司有这么奇葩QQ上还引用了别人的开源项目呢
解决方案十五:
JavaScriptSerializer用这个吧
解决方案:
JavaScriptSerializer好用看得到..
解决方案:
引用12楼wg5945的回复:
Quote: 引用5楼muguaigun的回复:
Quote: 引用3楼u011710947的回复:
Quote: 引用2楼u011710947的回复:
这哪需要你自己搞网上开源的一大堆引用后直接varobj=Newtonsoft.Json.JsonConvert.DeserializeObject(json);
公司不让用这些东西
不会有哪个公司不让用这个的吧~~到底是你认为公司不让用呢?还是真的不给用~~你可以找个旁边的问问~~
是啊。“到底是你认为公司不让用呢?还是真的不让用~~”
解决方案:
这种问题就没必要重造轮子了吧。
解决方案:
//publicstaticDataSettheRequstReturn(stringurl)//{//url="http://localhost:9095/"+url;//stringhtml="";//WebRequestrequest;//Encodingencoding=Encoding.GetEncoding("gb2312");//request=WebRequest.Create(url);//request.Credentials=CredentialCache.DefaultCredentials;//request.Timeout=20000;//WebResponseresponse;//response=request.GetResponse();//html=newStreamReader(response.GetResponseStream(),encoding).ReadToEnd();//XmlDocumentxmlDoc=newXmlDocument();//xmlDoc.LoadXml(html);//returnConvertXMLFileToDataSet(xmlDoc);//}publicstaticDataSetConvertXMLFileToDataSet(XmlDocumentxmld){StringReaderstream=null;XmlTextReaderreader=null;try{DataSetxmlDS=newDataSet();stream=newStringReader(xmld.InnerXml);//从stream装载到XmlTextReaderreader=newXmlTextReader(stream);xmlDS.ReadXml(reader);//xmlDS.ReadXml(xmlFile);returnxmlDS;}catch(System.Exceptionex){throwex;}finally{if(reader!=null)reader.Close();}}使用时使用DataSet.Tables["多个字段的名称"]进行读取