- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个看起来像这样的类:
public class Person {
public class Address {
private String line1;
private String line2;
private String zipCode;
private String state;
// standard public getters and setters for the class here
}
private String name;
private String address;
// standard public getters and setters for the class here
}
下面是我如何使用 jackson 的。
public class JsonTest {
public static <T> Object fromJson(String jsonAsString, Class<T> pojoClass)
throws JsonMappingException, JsonParseException, IOException {
return m.readValue(jsonAsString, pojoClass);
}
public static String toJson(Object pojo, boolean prettyPrint)
throws JsonMappingException, JsonGenerationException, IOException {
StringWriter sw = new StringWriter();
JsonGenerator jg = jf.createJsonGenerator(sw);
if (prettyPrint) {
jg.useDefaultPrettyPrinter();
}
m.writeValue(jg, pojo);
return sw.toString();
}
public static void main(String[] args) {
Person p = new Person();
String json = this.toJson(p, true); // converts ‘p’ to JSON just fine
Person personFromJson = this.fromJson(json, Person.class); // throws exception!!!
}
}
main 方法的第 3 行(我尝试将 json 转换为 Person 对象)抛出此异常:
IOException: Can not deserialize Class com.mycompany.models.Person$Address (of type non-static member class) as a Bean
我做错了什么?
最佳答案
因为内部类没有默认的零参数构造函数(它们有对外部/父类的隐藏引用)Jackson 无法实例化它们。
解决方案是使用static
内部类:
public class Outer {
static class Inner {
private String foo;
public String getFoo() { return foo; }
}
}
原始答案:
实现中存在一些问题,您似乎无法序列化此类,请参阅 cowtowncoder了解详情。
关于java - jackson IOException : Can not deserialize Class com. mycompany.models.Person$Address(类型为非静态成员类)作为 Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890796/
我们使用预签名的 s3 url 来提供对存储在 s3 中的图像的网络访问。 我们用来生成预签名 url 的 java 代码类似于下面 String accessKey = ...; String se
我将 admin.war 文件部署到 tomcat 管理器后出现此错误。我也无法从管理器启动站点。现在我在尝试启动 catalina 时看到这个错误 Caused by: org.springfram
我有一个项目导入了一个命名空间为 MyCompany.Task 的 Nuget 包.我的项目文件的命名空间为 MyCompany.MyProjectName.Services . 我也有返回类型为 S
我真的很难修复下面的错误,因为我已经正确添加了 jar 和 在 gwt.xml文件 0 5:27:22.011 [ERROR] [myapp] Failed to create an instance
我正在尝试使用 Assembly.GetType("MyCompany.Class1.Class2") 从字符串中动态获取类型。 Assembly.GetType("MyCompany.Class1"
不要连接到服务器...这是上次gwt eclipse中的一个项目 在 gwt 中点击按钮: greetServer(textToServer, new
事实是,Solr 项目目录位于 MyProject 父目录内(但两者之间没有模块或任何 Maven 关系,只是 FS 方便)。我必须把它拿出来吗? $ mvn -DskipTests clean in
在 Developer Account 和 Xcode 中可以看到通配符和相关应用 ID 的 iOS Team Provisioning Profile。 我的问题是什么 iOS 团队配置文件与应用程
我正在尝试在 Windows7 上构建一个 maven java 程序,我的 java 版本是 1.7。我收到此错误: "Error: Could not find or load main clas
我有一个看起来像这样的类: public class Person { public class Address { private String line1;
我正在使用带有 javafx 的 Java Maven。 我刚刚创建了一个带有生成器的窗口并想运行它。 我的主类名称与 POM.xml 中的主类名称完全相同,但它不起作用。我需要它来做一个学习项目 我
因此,我尝试将自动填充凭据提供程序添加到我的应用程序中,但我仍然遇到签名错误。我遵循的步骤是: 添加新的自动填充凭据提供商目标 为该目标创建配置文件 在新创建的目标 > Info.plist > NS
我是一名优秀的程序员,十分优秀!