posts - 60,comments - 71,trackbacks - 0

   在将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 阅读(604) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: