在Java中将文本文件转换为JSON

时间:2012-07-28 11:09:43

标签: java json

如何将文本文件转换为Json文件? 我有一个原始的in.txt文件,如下所示:

{“person”:{“name”:”AAAA”,”sid”:09328,”location”:”Sao Paulo”}}
{“person”:{“name”:”BBBBB”,”sid”:01934,”location”:”Brasilia”}}

非常感谢一点帮助!

4 个答案:

答案 0 :(得分:3)

要在JSON中转换文本文件,您可以在代码中使用JACKSON OBJECT MAPPER jar。

创建一个简单的Employee pojo。我们将从文件中读取JSON字符串并将其映射到Employee类。

这是代码:

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;
}  

}

这个POJO CLASS之后 最后这里是将JSON字符串值转换为java对象的示例

import java.io.File;
import java.io.IOException; 
import org.codehaus.jackson.map.ObjectMapper; 
import com.java2novice.json.models.Employee;

public class JsonToObject {

public static void main(String a[]){

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

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

AND这是你的JSON文件: jsonInput.txt文件包含json输入:

 {
"empId": 1017,
"name": "Nagesh Y",
"designation": "Manager",
"department": "Java2Novice",
"salary": 30000
}

希望这会对你有所帮助。

答案 1 :(得分:1)

首先,您需要下载Java的JSON库。转到this page,然后点击“免费源代码可用”。这将引导您进入GitHub页面,单击下载,下载整个库,将其解压缩,将整个解压缩的文件夹复制到项目的源文件夹中,并将其作为项目源包含在内。在Eclipse中,这将右键单击项目 - >构建路径 - >配置构建路径... - > Java Build Path,在Source选项卡下,单击“Add folder”并指向解压缩的文件夹。

然后,您可以逐行开始阅读文件,并将每个文件简单地传递给新JSONObject的构造函数。例如:

BufferedReader br = new BufferedReader(...);
String line;
while ((line = br.readLine()) != null) {
    JSONObject obj = new JSONObject(line);
    ...
    ...
}
但是,我想重申科多的评论。您使用的是印刷引号(,倾斜)而不是实际的双引号(",直),因此您可能希望在继续之前replace()每次出现该引号。此外,trim()之前将该行传递给JSONObject,只是为了摆脱任何尾随的空格。

答案 2 :(得分:0)

使用this api然后:

JsonParser parser = new JsonParser();
JsonObject o = (JsonObject)parser.parse(one_by_one_line_from_text_file);

答案 3 :(得分:-1)

您的文本文件已包含有效的JSON。

如果您的目标是获取JSON对象,那么您可能正在寻找this函数。