当前位置: 首页 > 编程语言 > C#

JavaScriptSerializer.Deserialize()到字典Share

时间:2023-04-10 22:20:31 C#

//openexchangerates.org/latest.json");HttpWebResponseresponse=(HttpWebResponse)webRequest.GetResponse();stringjsonResponse=string.Empty;using(StreamReadersr=newStreamReader(response.GetResponseStream())){jsonResponse=sr.ReadToEnd();}varserializer=newJavaScriptSerializer();CurrencyRateResponserateResponse=serializer.Deserialize(jsonResponse);如果我正确理解JavaScriptSerializer.Deserialize我需要定义和将Json转换为的对象。我可以使用这样的数据类型成功地序列化它:publicclassCurrencyRateResponse{publicstringdisclaimer{get;放;}公共字符串许可证{得到;放;}公共字符串时间戳{get;放;}publicstringbasePrice{get;放;}publicCurrencyRatesrates{get;放;}}publicclassCurrencyRates{publicstringAED{get;放;}公共字符串AFN{得到;放;}publicstringALL{得到;放;}公共字符串AMD{得到;放;我希望能够通过以下方式重播“CurrencyRates汇率”:publicDictionaryrateDictionary{get;放;但是解析器总是将rateDictionary返回为null。知道这是否可行,或者您有更好的解决方案吗?编辑:Json看起来像这样:{“免责声明”:“这是免责声明”,“许可证”:“从具有面向公众的API的各种提供商收集的数据”,“时间戳”:1328880864,“基地”:“USD","rates":{"AED":3.6731,"AFN":49.200001,"ALL":105.589996,"AMD":388.690002,"ANG":1.79}}此代码适用于您的示例数据publicclassCurrencyRateResponse{public}publicstringlicense{get;放;}公共字符串时间戳{get;放;}publicstring@base{得到;放;}publicDictionaryrates{get;放;}}JavaScriptSerializerser=newJavaScriptSerializer();varobj=ser.Deserialize(json);varrate=obj.rates["AMD"];如果您的json是这样的:{"key":1,"key2":2,...}那么您应该可以这样做:DictionaryrateDict=serializer.Deserialize>(json);这会编译:stringjson="{"key":1,"key2":2}";varser=newSystem.Web.Script.Serialization.JavaScriptSerializer();vardict=ser.Deserialize>(json);你应该能够从这里自己弄清楚。以上就是C#学习教程中分享的全部内容:JavaScriptSerializer.Deserialize()去字典。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——下面的代码可以正常运行,CurrencyRates是一个集合,通过List我们可以获取所有汇率。这应该工作!公共类CurrencyRateResponse{公共字符串免责声明{get;放;}公共字符串许可证{得到;}publicListrates{get;放;}}publicclassCurrencyRates{publicstringAED{get;放;}公共字符串AFN{得到;放;}publicstringALL{得到;放;}公共字符串AMD{得到;放;}}JavaScriptSerializerser=newJavaScriptSerializer();varobj=ser.Deserialize(json);varrate=obj.rates["AMD"];本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: