格式化输入作为JSON格式与java的问题
问题描述:
大家好,我有一个麻烦,我的Java程序。本质上,我正在编写一个程序,要求用户提供书名,作者,价格和isbn。然后它将输入存储到存储输入的Book类中,并具有一个toString方法,该方法输出类似于JSON格式的内容。 然后,我的books类使用Array列表来存储Book对象,并且有一个toString方法,它以JSON格式打印出整套书籍。问题是它没有正确格式化。问题在于我的代码中的if和else语句。我的继承人代码:格式化输入作为JSON格式与java的问题
import java.util.ArrayList;
public class Books
{
private ArrayList<Book> books;
public Books()
{
books = new ArrayList<Book>();
}
public void add(Book bk)
{
books.add(bk);
}
public String toString()
{
String temp = "{\n ";
temp = temp + " \"books:\": [\n";
int bookCount = 0;
for (Book bk : books) {
temp += bk.toString();
bookCount++;//add +1 to bookcount
if (bookCount < books.size()-1) {
temp += ",\n";
}
else {
temp += "\n ]\n}\n";
}
}
return temp;
}
}
当我运行我的程序,它看起来是这样的:
我的目标是有它看起来像这样:
因此,在正确解析第一本书后,添加“,\ n”; 。但是每增加一个“\ n] \ n} \ n”后,每一本书都将被解析。我只想添加到最后一个。 :(请帮助。
在此先感谢
答
的问题是,你的检查条件之前增加bookCount
值。
如果你没有使用增强的for循环,代码看起来像这样
for (int bookCount = 0; bookCount < books.size()-1; bookCount++) {
Book book = books.get(i);
// print book
// check Condition
}
应该bookcount后检查的条件
答
后加入这样不行,使用适当的JSON
库来正确解析或创建JSON数据结构。
这里是一个教程,让你开始。 http://java.sg/parsing-a-json-string-into-an-object-with-gson-easily/
答
使用Jackson:
...
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue (new java.io.Writer().write (jsonifiedStr), books);
System.out.println (jsonifiedStr);
...
谢谢你的头了,但对于我来说,我不得不这样分析它:\ – user1025064 2012-03-09 02:54:14
作业,ehhh? :) – ingyhere 2012-03-09 02:58:23