В моем проекте у меня есть файл json, подобный этому.
[
{
"Task": {
"refType": "EM TASK ",
"reference": "73-22-49-100-104",
"engType": "A5",
"DMC": "V2500-A0-73-22-4900-03A-251A-C",
"subTasks": {
"SUBTASK0": "73-22-49-110-054-001",
"SUBTASK1": "73-22-49-110-054-002"
}
}
}
]
Я хочу создать карту с этим файлом json. Это может быть так {refType, reference, engType, DM C, подзадачи} Для этого я написал эти коды
JSONParser parser = new JSONParser();
int k=0;
try {
JSONObject json=null;
System.out.println("Reading JSON file from Java program");
FileReader fileReader = new FileReader("C:\\Users\\ftk1187\\Desktop\\jsonExample.json");
JSONArray jsonArray = (JSONArray) parser.parse(fileReader);
ArrayList<String> subtasks=new ArrayList<String>();
for(int i=0;i<jsonArray.size();i++)
{
json=(JSONObject) jsonArray.get(i);
JSONObject jsonValue = (JSONObject) json.get("Task");
JSONObject subTasks = (JSONObject) jsonValue.get("subTasks");
String reference = (String) jsonValue.get("reference");
String refType = (String) jsonValue.get("refType");
String engType = (String) jsonValue.get("engType");
String dmc = (String) jsonValue.get("DMC");
System.out.println("reference: " + reference);
System.out.println("refType: " + refType);
System.out.println("DMC: " + dmc);
System.out.println("engType: " + engType);
subtasks.addAll(subTasks.values());
while(k<subtasks.size())
{
System.out.println("SubTasks: "+subtasks.get(k));
k++;
}
ObjectMapper objectMapper=new ObjectMapper();
Tasks map=objectMapper.readValue(fileReader, Tasks.class);
System.out.println(map);
}
class Tasks{
private String engType;
private String refType;
private String reference;
private String dmc;
private String[] subTask;
public String getEngType() {
return engType;
}
public void setEngType(String engType) {
this.engType=engType;
}
public String getRefType() {
return refType;
}
public void setRefType(String RefType) {
this.refType=RefType;
}
public String getReference() {
return reference;
}
public void setReference(String Reference) {
this.reference=Reference;
}
public String getDmc() {
return dmc;
}
public void setDmc(String Dmc) {
this.dmc=Dmc;
}
public String[] getSubTask() {
return subTask;
}
public void setSubTask(String[] SubTask) {
this.subTask=SubTask;
}
@Override
public String toString() {
StringBuilder sb=new StringBuilder();
sb.append("{");
sb.append(refType).append(",");
sb.append(reference).append(",");
sb.append(engType).append(",");
sb.append(dmc).append(",");
for(String subTask1:subTask) {
sb.append(subTask1).append(",");
}
sb.append("}");
return sb.toString();
}
}
Но у меня это не работает. Это дает мне эту ошибку
com.faster xml .jackson.databind.ex c .MismatchedInputException: нет содержимого для сопоставления из-за конца ввода в [Source: (FileReader) ; строка: 1, столбец: 0] в com.faster xml .jackson.databind.ex c .MismatchedInputException.from (MismatchedInputException. java: 59) в com.faster xml .jackson.databind.ObjectMapper ._initForReading (ObjectMapper. java: 4344) в com.faster xml .jackson.databind.ObjectMapper._readMapAndClose (ObjectMapper. java: 4189) в com.faster xml .jackson.databind.ObjectMapper.readValue (ObjectMapper. java: 3218) в DocFinder.doGet (DocFinder. java: 89) в javax.servlet.http.HttpServlet.service (HttpServlet. java: 634) в javax.servlet.http.HttpServlet. служба (HttpServlet. java: 741) в орг. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 231) в орг. apache .catalina.core.ApplicationFilterChain .doil java: 166) в орг. apache .tomcat.websocket.server.WsFilter.doFilter (WsFilter. java: 53) в орг. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. * 10) *: 193) в орг. apache .catalina.core.ApplicationFilterCha in.doFilter (ApplicationFilterChain. java: 166) на орг. apache .catalina.core.StandardWrapperValve.invoke (StandardWrapperValve. java: 202) на орг. StandardContextValve. java: 96) в орг. apache .catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase. java: 541) в орг. apache .catalina.core.StandardHostValve.invoke (StandardHostValve. *: 139) в орг. apache .catalina.valves.ErrorReportValve.invoke (ErrorReportValve. java: 92) в орг. apache .catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve. java: 678) в орг. apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve. java: 74) в орг. apache .catalina.connector.CoyoteAdapter.service (CoyoteAdapter. java: 343) в орг. apache .coyote.http11.Http11Processor.service (Http11Processor. java: 367) в орг. apache .coyote.AbstractProcessorLight.process (AbstractProcessorLight. java: 65) в орг. apache .coyote.Abstract $ ConnectionHandler.process (AbstractProtocol java:. 860 ) в орг. apache .tomcat.util. net .NioEndpoint $ SocketProcessor.doRun (NioEndpoint. java: 1598) в орг. apache .tomcat.util. net .SocketProcessorBase.run (SocketProcessorBase . java: 49) в java .util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) в org. apache .tomcat. util.threads.TaskThread $ WrappingRunnable.run (TaskThread. java: 61) в java .lang.Thread.run (Неизвестный источник)
Я не знаю, что мне нужно делать. Я хочу использовать эти параметры для создания перенаправления сервлета.