【问题标题】:Converting csv row to JSON object in Java在Java中将csv行转换为JSON对象
【发布时间】:2013-03-12 21:47:05
【问题描述】:

我有一个类似的 csv 文件

"name.firstName","name.givenName","name.DisplayName","phone.type","phone.value"
"john","maverick","John Maverick","mobile","123-123-123"
"jim","lasher","Jim Lasher","mobile","123-123-123"

我想将第 2 行和第 3 行转换为 JSON 对象。使用第一行作为标题。所以结果会是

[
{  
"name": {
    "firstName": "john",
    "givenName": "maverick",
    "DisplayName": "John Maverick"
},
"phone": {
    "type": "mobile",
    "value": "123-123-123"
}
},
{
"name": {
    "firstName": "john",
    "givenName": "maverick",
    "DisplayName": "John Maverick"
},
"phone": {
    "type": "mobile",
    "value": "123-123-123"
}
]

知道如何实现吗?

【问题讨论】:

  • 创建表示结构的 Array 和 Map 对象,然后将它们序列化为 JSON。

标签: java json csv jackson


【解决方案1】:

这是一个可以帮助您的 Java 库。 http://www.jonathanhfisher.co.uk/playpen/csv2json/index.htm

这是一个 JavaScript 库,可能对您有用,也可能没用。 http://www.cparker15.com/code/utilities/csv-to-json/

最后,这是一个可能有用的过去答案。我喜欢 OpenCSV 解决方案。但是,您可以使用 Jackson 来代替 JAXB。 Converting an CSV file to a JSON object in Java

【讨论】:

  • 感谢您的回答,在这第三个解决方案中,使用的示例代码是 ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy(); str.setType(YourOrderBean.class); String[] columns = new String[] {"name", "orderNumber", "id"}; // 在你的 JavaBean 中绑定的字段 str.setColumnMapping(columns); CsvToBean csv = new CsvToBean(); List list = csv.parse(strat, yourReader); yourReader 到底是什么,如何输入值与 bean 绑定?谢谢
  • 我相信 yourReader 是 inputFileReader。
  • 是的,谢谢,还有使用 Jackson 将 javaBean 转换为 JSON 的文档吗?再次感谢。
  • 这看起来是一个不错的教程,但我还没有机会完成它。 mkyong.com/java/how-to-convert-java-object-to-from-json-jackson
  • 如果我的回答有帮助,您可以投票和/或选择它作为正确答案吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-07-23
  • 1970-01-01
  • 2012-08-01
  • 2021-05-05
  • 2021-12-19
  • 1970-01-01
  • 2012-08-29
  • 2012-05-29
相关资源
最近更新 更多