Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java将输入格式化为JSON格式时遇到问题_Java_If Statement - Fatal编程技术网

使用java将输入格式化为JSON格式时遇到问题

使用java将输入格式化为JSON格式时遇到问题,java,if-statement,Java,If Statement,大家好,我的java程序有问题。基本上,我正在编写一个程序,要求用户提供书名、作者、价格和isbn。然后它将存储它的输入带到我的Book类,该类存储输入,并有一个toString方法,该方法打印出类似于JSON格式的内容。 然后,MyBooks类使用数组列表来存储Book对象,并使用toString方法以JSON格式打印出整个书籍集。问题是它的格式不正确。问题在于代码中的if和else语句。这是我的密码: import java.util.ArrayList; 公共课用书 { 私人ArrayL

大家好,我的java程序有问题。基本上,我正在编写一个程序,要求用户提供书名、作者、价格和isbn。然后它将存储它的输入带到我的Book类,该类存储输入,并有一个toString方法,该方法打印出类似于JSON格式的内容。 然后,MyBooks类使用数组列表来存储Book对象,并使用toString方法以JSON格式打印出整个书籍集。问题是它的格式不正确。问题在于代码中的if和else语句。这是我的密码:


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);
...