在将JSON格式的数据转换为BEAN的JAVA数据格式时,需要提供带参数和不带参数的构造函数,如果仅仅提供了带参数的构造函数,而没有提供不带参数的构造函数,会发生如下的异常:
Exception in thread "main" net.sf.json.JSONException: java.lang.InstantiationException:
这表明BEAN没有正常的被初始化:
public static void json2bean() {
JSONObject jo = JSONObject
.fromObject("{bookname:\"C++程序设计\",isbn:\"885596-989\",author:\"小东\"}");
Book book = (Book) JSONObject.toBean(jo, Book.class);
System.out.println(book.getAuthor() + "-" + book.getBookname());
}
所以在Book.java文件中,除了要提供带参数的构造函数
public Book(String bookname, String isbn, String author){
this.bookname = bookname;
this.isbn = isbn;
this.author = author;
}
外,还要提供不带参数的构造函数:
public Book() {
System.out.println("this is run");
}
这样就不会报那个异常了.为了表明不带参数的构造函数被调用,可以在函数中加入一条输出语句,以表明不带参数的构造函数是否被调用.
posted on 2008-10-31 09:51
henry1451 阅读(613)
评论(0) 编辑 收藏