CSV与JSON比较

时间:2015-03-23 08:53:24

标签: java json csv

假设我有两个CSV文件。文件1定义了标准的csv数据文件&文件2是文件1和文件1的映射文件。 JSON 现在我想要的是我想映射这两个文件,并将文件1的数据与Json进行比较。 &安培;将不匹配输出为csv。

我如何实现这一目标?

文件1:

key,id,value,name,number
1,322,re43,dasu,555-456

文件2:

Rsat_key,key
Retina_id,id
reason_value,value
real_name,name
work_ph,phone

的Json

{
    "Rsat_key":1,
    "Retina_id":322,
    "reason_value":,
    "real_name":dasu,
    "work_ph":,555-456,
}

3 个答案:

答案 0 :(得分:1)

代码看起来像

 String csvFile = "sample.csv";
 BufferedReader br = null;
 String line = "";
 String cvsSplitBy = ",";
 try {
 br = new BufferedReader(new FileReader(csvFile));
 while ((line = br.readLine()) != null) {
 // use comma as separator
 String[] result = line.split(cvsSplitBy);
 System.out.println(" { Rsat_key: " + result[0] 
 + " , Retina_id:" + result[1] + ", reason_value:"+result[2]+", real_name:"+result[3]+", work_ph:"++result[4]+"}");
 }

如果你想从csv动态分配密钥,那么你也必须阅读csv。

答案 1 :(得分:1)

创建一个类似

的bean
@XmlRootElement(name = "employee") 
public class Employee {
@XmlElement  
private String employeeId;  
@XmlElement  
private String employeeName; 
@XmlElement  
private String jobType;
@XmlElement     
private String address; 
@XmlElement  
private Long salary;

//setter and getter

并将值分配给bean,如果您使用@Produces(" application / json")使用restful Web服务,则端点中的注释将生成JSON。

答案 2 :(得分:0)

另一种选择是创建对象模型并使用google gson(用于json)和beanio(用于csv)来序列化和反序列化对象。

https://sites.google.com/site/gson/gson-user-guide

http://beanio.org/

例如使用gson

public class Model1 {
   String field1;
   //getters and setters
}

然后

Model1 model1 = new Gson().fromJson(YourfileReader);

与beanio的想法相同。

您可以更进一步,在对象上添加相同的方法,以帮助您轻松查找。

希望它能给你灵感。