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

在JSON反序列化期间,没有为’System.String’类型定义无参数构造函数分享

时间:2023-04-11 02:30:20 C#

C#学习教程:在JSON反序列化过程中,没有为类型'System.String'定义无参数构造函数要将一些简单的JSON反序列化为托管类型,我会遇到异常。例外是:MissingMethodException没有为类型“System.String”定义无参数构造函数虽然System.String没有无参数构造函数,但我不清楚为什么这很重要。执行反序列化的代码是:usingSystem.Web.Script.Serialization;私有静态JavaScriptSerializer序列化器=newJavaScriptSerializer();publicstaticMyTypeDeserialize(stringjson){returnserializer.Deserialize(json);}我的类型主要是:publicclassMyType{publicstringid{get;放;}公共字符串类型{得到;放;}公共列表位置{得到;放;}公共地址{get;放;}publicDictionarylocalizedStrings{get;放;}}另一个类用于地址:publicclassAddress{publicstringaddressLine{get;放;}公共字符串套件{get;放;}publicstringlocality{get;放;}publicstringsubdivisionCode{get;放;}publicstringpostalCode{get;放;}publicstringcountryRegionCode{得到;放;}publicstringcountryRegion{得到;放;}}这是JSON:{"id":"uniqueString","type":"Foo","location":[47.6,-122.3321]"address":{"addressLine":"1000FourthAve","suite":"en-us","locality":"西雅图","subdivisionCode":"WA","postalCode":"98104","countryRegionCode":"US","countryRegion":"UnitedStates"},"localizedStrings":{"en-us":"Library","en-ES":"LaBiblioteca"即使我的JSON只是:我得到同样的异常:{"id":"uniquestring"}谁能告诉我为什么System.String需要一个无参数的构造函数?无参数的构造函数需要任何类型的反序列化想象一目了然,您正在实现反序列化器。您需要:从输入流中获取一种对象(在本例中为字符串)实例化该对象。如果没有默认构造函数,您将无法执行此操作。从流中读取属性/值分配值从流到步骤2中创建的对象。我遇到了同样的问题,这解决了它。干杯!为“System.String”类型定义无参数构造函数以共享所有内容。如果它对您有用并且您需要了解更多C#学习教程,希望大家多多关注——//DeserializingJsonobjectfromstringDataContractJsonSerializerjsonObjectPersonInfo=newDataContractJsonSerializer(typeof(PersonModel));MemoryStreamstream=newMemoryStream(Encoding.UTF8.GetBytes(userInfo));PersonModelpersonInfoModel=(PersonModel)jsonObjectPersonInfo.ReadObject(stream);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: