Я получаю исключение clasCastException при обработке данных JSON.
Я хочу получить «employeeid» из ответа JSON и хочу позже записать идентификаторы сотрудников в новый файл Excel. Однако я получаю исключение приведения класса — строку нельзя привести к объекту.
Я вставил свой код ниже, так как я новичок в этом, поэтому ваша помощь будет очень признательна.
вот мой ответ в формате JSON:
{
"msg": "Successful",
"displaycount": "50",
"totalcount": "1294",
"userdetails": [
{
"employeeid": "132421",
"userKey": 17
},
{
"employeeid": "112342",
"userKey": 18
},
{
"employeeid": "112341",
"userKey": 19
},
{
"employeeid": "112343",
"userKey": 20
},
{
"employeeid": "99954",
"userKey": 21
},
],
"errorCode": "0"
}
Код:
package api.src;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.opencsv.CSVWriter;
import java.io.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class callAPI {
static String[] finalResult;
public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException, ParseException {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*****"))
.header("X-RapidAPI-Host", "***********")
.header("Content-Type", "application/json")
.header("Authorization",**********)
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
System.out.println("Connected "+request);
try {
String path = "D:/Sonika/JARs/httpresponse.json";
HttpResponse response = null;
response = HttpClient.newHttpClient().send(request,
HttpResponse.BodyHandlers.ofString());
int statusCode = response.statusCode();
System.out.println(statusCode);
System.out.println(response.body());
try (PrintWriter out = new PrintWriter(new FileWriter(path))) {
out.write(response.body().toString());
}
JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject) parse.parse(new FileReader(path));
JSONArray jsonarr_1 = (JSONArray) jobj.get("userdetails");
//Get data for userdetails array
for (Object element : jsonarr_1) {
//Store the JSON objects in an array
//Get the index of the JSON object and print the values as per the index
JSONObject jsonobj_1 = (JSONObject)element;
finalResult = (String[]) jsonobj_1.get("employeeid");
System.out.println("\nEmployee ID: "+finalResult);
}
}
catch(IOException e) {
// handle not expected exception
e.printStackTrace();
}
}
public void writingCSVFile(){
try {
CSVWriter file = new CSVWriter(new FileWriter(new File("D:/Sonika/JARs/OutputExcelfile.xlsx")));
String[] colName = { "Employee ID"};
file.writeNext(colName);
file.writeNext(finalResult);
file.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/760 ... -cant-be-c
Исключение в основном java.lang.ClassCastException: класс java.lang.String не может быть преобразован в класс ⇐ JAVA
Программисты JAVA общаются здесь
1728276891
Anonymous
Я получаю исключение clasCastException при обработке данных JSON.
Я хочу получить «employeeid» из ответа JSON и хочу позже записать идентификаторы сотрудников в новый файл Excel. Однако я получаю исключение приведения класса — строку нельзя привести к объекту.
Я вставил свой код ниже, так как я новичок в этом, поэтому ваша помощь будет очень признательна.
вот мой ответ в формате JSON:
{
"msg": "Successful",
"displaycount": "50",
"totalcount": "1294",
"userdetails": [
{
"employeeid": "132421",
"userKey": 17
},
{
"employeeid": "112342",
"userKey": 18
},
{
"employeeid": "112341",
"userKey": 19
},
{
"employeeid": "112343",
"userKey": 20
},
{
"employeeid": "99954",
"userKey": 21
},
],
"errorCode": "0"
}
Код:
package api.src;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.opencsv.CSVWriter;
import java.io.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class callAPI {
static String[] finalResult;
public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException, ParseException {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*****"))
.header("X-RapidAPI-Host", "***********")
.header("Content-Type", "application/json")
.header("Authorization",**********)
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
System.out.println("Connected "+request);
try {
String path = "D:/Sonika/JARs/httpresponse.json";
HttpResponse response = null;
response = HttpClient.newHttpClient().send(request,
HttpResponse.BodyHandlers.ofString());
int statusCode = response.statusCode();
System.out.println(statusCode);
System.out.println(response.body());
try (PrintWriter out = new PrintWriter(new FileWriter(path))) {
out.write(response.body().toString());
}
JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject) parse.parse(new FileReader(path));
JSONArray jsonarr_1 = (JSONArray) jobj.get("userdetails");
//Get data for userdetails array
for (Object element : jsonarr_1) {
//Store the JSON objects in an array
//Get the index of the JSON object and print the values as per the index
JSONObject jsonobj_1 = (JSONObject)element;
finalResult = (String[]) jsonobj_1.get("employeeid");
System.out.println("\nEmployee ID: "+finalResult);
}
}
catch(IOException e) {
// handle not expected exception
e.printStackTrace();
}
}
public void writingCSVFile(){
try {
CSVWriter file = new CSVWriter(new FileWriter(new File("D:/Sonika/JARs/OutputExcelfile.xlsx")));
String[] colName = { "Employee ID"};
file.writeNext(colName);
file.writeNext(finalResult);
file.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/76006320/exception-in-main-java-lang-classcastexceptionclass-java-lang-string-cant-be-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия