这似乎应该很容易,但是当我尝试将一些简单的JSON 反序列化为托管类型时,却遇到了异常。例外是:
MissingMethodException
没有为’System.String’类型定义无参数构造函数
虽然确实没有System.String的无参数构造函数,但是我不清楚为什么这很重要。
执行反序列化的代码是:
using System.Web.Script.Serialization;
private static JavaScriptSerializer serializer = new JavaScriptSerializer();
public static MyType Deserialize(string json)
{
return serializer.Deserialize<MyType>(json);
}
我的类型大致是:
public class MyType
{
public string id { get; set; }
public string type { get; set; }
public List<Double> location { get; set; }
public Address address { get; set; }
public Dictionary<string, string> localizedStrings { get; set; }
}
另一类用于地址:
public class Address
{
public string addressLine { get; set; }
public string suite { get; set; }
public string locality { get; set; }
public string subdivisionCode { get; set; }
public string postalCode { get; set; }
public string countryRegionCode { get; set; }
public string countryRegion { get; set; }
}
这是JSON:
{
"id": "uniqueString",
"type": "Foo",
"location": [
47.6,
-122.3321
]
"address": {
"addressLine": "1000 Fourth Ave",
"suite": "en-us",
"locality": "Seattle",
"subdivisionCode": "WA",
"postalCode": "98104",
"countryRegionCode": "US",
"countryRegion": "United States"
},
"localizedStrings": {
"en-us": "Library",
"en-ES": "La Biblioteca"
}
}
即使我的JSON只是我,也会遇到相同的异常:
{
"id": "uniquestring"
}
谁能告诉我为什么System.String需要无参数的构造函数?
无参数构造函数需要进行任何反序列化。想象一下您正在实现一个反序列化器。你需要:
我试图构建一个包含getter和setter的构造函数,除了在参数中调用它之外,这些构造函数似乎对我的所有属性都很好。 当我读到这行代码时: 然后在控制台中出现以下错误: 构造函数flip(String)未定义构造函数flip(String)未定义 也许我错过了什么?
我在我的项目中使用FasterXML/Jackson Databind已经有一段时间了,一切都很顺利,直到我发现这篇文章并开始使用这种方法对没有@JsonProperty注释的对象进行序列化。 问题是,当我有一个接受多个参数并使用@JsonCreator注释装饰这个构造函数时,Jackson会抛出以下错误: 我已经创建了一个小项目来说明这个问题,我试图对这个类进行序列化: 反序列化代码如下: 我已
在.citydoor.imports.catalog.tools中打包;
问题内容: 我正在尝试将json数据反序列化为模型类,但是失败了。这是我的工作: 这是我的模型的样子: 您可以看到我到达这里的Json:http : //api.worldbank.org/incomeLevels/LIC/countries? format=json 这是我得到的错误: 无法将JSON数组反序列化为“ Mvc4AsyncSample.Models.CountryModel”类型。
正在尝试从spring boot接收页面进行单元测试。如果与javascript一起使用,该页面可以很容易地进行反序列化,但是使用java,它会失败。已经为spring添加了一个默认构造函数(这是另一篇stackoverflow文章中接受的答案),但它在这里不起作用。 单元测试 再培训班 "' 代码在github上可用-- 反序列化引发以下错误:
问题内容: 我已经加载了内容模块,我得到的具体错误是: 有什么想法吗?我是从以下教程中获得的:http : //developer.android.com/guide/topics/ui/notifiers/notifications.html 问题答案: 更改此: 至 发生错误是因为在这种情况下,它引用的实例,但构造函数需要一个。您必须传递的上下文是对活动本身的引用,因此您必须使用显式访问它。