Не удается преобразовать текстовый файл в формат json - PullRequest
1 голос
/ 05 ноября 2019

Привет, я новичок в Джексоне и пытаюсь преобразовать текстовый файл в JSON, но у меня проблема с моим текстовым файлом. Я не знаю, в каком формате должна быть ниже информация о текстовом файле, это мой код

ОШИБКА: org.codehaus.jackson.map.JsonMappingException: нераспознанное поле «Сотрудник» (класс test.Employee), не помеченное как игнорируемое в [Source: C: \ Users \ Ashwin Utchanah \ Desktop \ BIOGRID \ jsonInput.txt;строка: 3, столбец: 2]

text file : {"Employee":{"EmpID":1234,"name":"assd","designation":”programmer”,"salary":25000}}

Класс сотрудника:

public class Employee {

    private int empId;
    private String name;
    private String designation;
    private String department;
    private int salary;

    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append("************************************");
        sb.append("\nempId: ").append(empId);
        sb.append("\nname: ").append(name);
        sb.append("\ndesignation: ").append(designation);
        sb.append("\ndepartment: ").append(department);
        sb.append("\nsalary: ").append(salary);
        sb.append("\n************************************");
        return sb.toString();
    }

    public int getEmpId() {
        return empId;
    }
    public void setEmpId(int empId) {
        this.empId = empId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDesignation() {
        return designation;
    }
    public void setDesignation(String designation) {
        this.designation = designation;
    }
    public String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        this.salary = salary;
    }  
}

Основной класс:

public class ObjectToJson {
    public  static void main(String [] args) {

        ObjectMapper mapper = new ObjectMapper();

        try {
            File jsonInputFile = new File("C:\\Users\\Ashwin Utchanah\\Desktop\\BIOGRID\\jsonInput.txt");
            Employee emp = mapper.readValue(jsonInputFile, Employee.class);
            System.out.println(emp);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1 Ответ

0 голосов
/ 05 ноября 2019

JSON, который вы пытаетесь преобразовать в конкретный объект, недопустим.

Вы можете легко проверить это с помощью валидатора JSON, например JSON lint.

https://jsonlint.com/

Проблема возникает из поля верхнего уровня Employee. Изменение входного файла на:

 {
    "EmpID": 1234,
    "name": "assd",
    "designation": "programmer",
    "salary": 25000
 }

Должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...