Java 使用扫描仪无限扫描 JSONObject 程序时出错
Java Error scanning JSONObject program using scanner scans infinitely
我在编写这个程序时遇到了这个错误,我只想通过扫描器传递给 JSONobject 并打印 json 对象
但扫描仪进入无限循环
package com.readvalues.main;
import java.util.Scanner;
import net.sf.json.JSONObject;
public class ReadValues
{
public static void main(String[] args)
{
String x="";
try
{
System.out.println("Enter the data");
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
x = x + scanner.next();
}
JSONObject jsonObject = JSONObject.fromObject(x);
System.out.println(jsonObject);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
在终端中
Enter the data
{"ExecutiveGoal":
{"EMPLID":"100020","GOAL_ID":"GOAL-3-98372","GOAL":"Conduct EPC Contract Kaizen","DUE_DATE":"07/01/2018","STATUS":"On Track or Complete (Green)","CATEGORY":"Operational Goal","SUPPORTS_ORG_GOAL":"","COMPLETED_ON":"06/30/2018","CREATED_BY":"Mark Hensley","CREATED_ON":"03/01/2018","LAST_UPDATED_BY":"Mark Hensley","LAST_UPDATED_ON":"03/01/2018"
},
"ExecutiveGoal":
{"EMPLID":"100020","GOAL_ID":"GOAL-3-98373","GOAL":"Exit 2018 with minimum 5 negotiators trained and capable in O&M, MSAs, EPCs, and MIPSAs. At least 2 negotiators capable in PPAs.","DUE_DATE":"12/31/2018","STATUS":"On Track or Complete (Green)","CATEGORY":"People Leader Goal","SUPPORTS_ORG_GOAL":"","COMPLETED_ON":"","CREATED_BY":"Mark Hensley","CREATED_ON":"03/01/2018","LAST_UPDATED_BY":"Mark Hensley","LAST_UPDATED_ON":"03/01/2018"
}
}
//INFINITE LOOP SCANNING
我都试过了
扫描仪正在等待 int...
scanner.nextLine() 会有帮助。
当您使用 scanner.nextInt()
时,它会等待整数值。您正在输入一个 json 字符串,这就是它抱怨的原因。您需要将其更改为需要字符串的 scanner.next()
。
而且你这样写的循环永远不会结束。它将要求您永远从输入中读取字符串。您可能会考虑一些 "exit" 条件 ;)
我在编写这个程序时遇到了这个错误,我只想通过扫描器传递给 JSONobject 并打印 json 对象
但扫描仪进入无限循环
package com.readvalues.main;
import java.util.Scanner;
import net.sf.json.JSONObject;
public class ReadValues
{
public static void main(String[] args)
{
String x="";
try
{
System.out.println("Enter the data");
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
x = x + scanner.next();
}
JSONObject jsonObject = JSONObject.fromObject(x);
System.out.println(jsonObject);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
在终端中
Enter the data
{"ExecutiveGoal":
{"EMPLID":"100020","GOAL_ID":"GOAL-3-98372","GOAL":"Conduct EPC Contract Kaizen","DUE_DATE":"07/01/2018","STATUS":"On Track or Complete (Green)","CATEGORY":"Operational Goal","SUPPORTS_ORG_GOAL":"","COMPLETED_ON":"06/30/2018","CREATED_BY":"Mark Hensley","CREATED_ON":"03/01/2018","LAST_UPDATED_BY":"Mark Hensley","LAST_UPDATED_ON":"03/01/2018"
},
"ExecutiveGoal":
{"EMPLID":"100020","GOAL_ID":"GOAL-3-98373","GOAL":"Exit 2018 with minimum 5 negotiators trained and capable in O&M, MSAs, EPCs, and MIPSAs. At least 2 negotiators capable in PPAs.","DUE_DATE":"12/31/2018","STATUS":"On Track or Complete (Green)","CATEGORY":"People Leader Goal","SUPPORTS_ORG_GOAL":"","COMPLETED_ON":"","CREATED_BY":"Mark Hensley","CREATED_ON":"03/01/2018","LAST_UPDATED_BY":"Mark Hensley","LAST_UPDATED_ON":"03/01/2018"
}
}
//INFINITE LOOP SCANNING
我都试过了
扫描仪正在等待 int... scanner.nextLine() 会有帮助。
当您使用 scanner.nextInt()
时,它会等待整数值。您正在输入一个 json 字符串,这就是它抱怨的原因。您需要将其更改为需要字符串的 scanner.next()
。
而且你这样写的循环永远不会结束。它将要求您永远从输入中读取字符串。您可能会考虑一些 "exit" 条件 ;)