首页 > 解决方案 > 无法将文本文件转换为 json

问题描述

你好,我是杰克逊的新手,我正在尝试将文本文件转换为 JSON,但我的文本文件有问题我不知道文本文件的详细信息应该是什么格式,下面是我的代码

错误:org.codehaus.jackson.map.JsonMappingException:无法识别的字段“员工”(类 test.Employee),在 [来源: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();
        }
    }
}

标签: javajackson

解决方案


您尝试转换为具体对象的 JSON 不是有效的。

您可以使用 JSON lint 之类的 JSON 验证器轻松对此进行测试。

https://jsonlint.com/

问题发生在顶级Employee字段。将输入文件更改为:

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

应该解决你的问题。


推荐阅读