使用java将输入格式化为JSON格式时遇到问题
大家好,我的java程序有问题。基本上,我正在编写一个程序,要求用户提供书名、作者、价格和isbn。然后它将存储它的输入带到我的Book类,该类存储输入,并有一个toString方法,该方法打印出类似于JSON格式的内容。 然后,MyBooks类使用数组列表来存储Book对象,并使用toString方法以JSON格式打印出整个书籍集。问题是它的格式不正确。问题在于代码中的if和else语句。这是我的密码:使用java将输入格式化为JSON格式时遇到问题,java,if-statement,Java,If Statement,大家好,我的java程序有问题。基本上,我正在编写一个程序,要求用户提供书名、作者、价格和isbn。然后它将存储它的输入带到我的Book类,该类存储输入,并有一个toString方法,该方法打印出类似于JSON格式的内容。 然后,MyBooks类使用数组列表来存储Book对象,并使用toString方法以JSON格式打印出整个书籍集。问题是它的格式不正确。问题在于代码中的if和else语句。这是我的密码: import java.util.ArrayList; 公共课用书 { 私人ArrayL
import java.util.ArrayList;
公共课用书
{
私人ArrayList书籍;
公共书籍()
{
books=新数组列表();
}
公共作废添加(书籍bk)
{
图书。添加(bk);
}
公共字符串toString()
{
字符串temp=“{\n”;
temp=temp+“\”书本:\”:[\n”;
int bookCount=0;
用于(书籍bk:书籍){
温度+=bk.toString();
bookCount++;//将+1添加到bookCount
if(bookCount
当我运行我的程序时,它如下所示: 我的目标是让它看起来像这样: 因此,在正确解析第一本书之后,添加“,\n”。但是每一本被解析的书在添加“\n]\n}\n”;我只想将其添加到最后一个:(请帮忙
提前感谢问题是在检查条件之前增加了
bookCount
值
如果您没有使用增强for循环,代码将如下所示
for (int bookCount = 0; bookCount < books.size()-1; bookCount++) {
Book book = books.get(i);
// print book
// check Condition
}
for(int bookCount=0;bookCount
应在检查条件后添加bookCount不要这样做,请使用适当的
JSON
库正确解析或创建JSON数据结构
这里有一个教程让你开始学习。
使用:
谢谢你的提醒,但对于我的案例,我必须这样分析:\
for (int bookCount = 0; bookCount < books.size()-1; bookCount++) {
Book book = books.get(i);
// print book
// check Condition
}
...
ObjectMapper mapper = new ObjectMapper ();
mapper.writeValue (new java.io.Writer ().write (jsonifiedStr), books);
System.out.println (jsonifiedStr);
...