扁平的csv数据到Json

时间:2014-10-20 10:28:51

标签: json serialization

我正在尝试用Java处理Json数据。我有以下格式的数据(它是带数组的嵌套数据结构等)。

person.name,person.friend[0],person.friend[1],person.address.city,person.address.country
1,x,y,kolkata,india
2,a,b,london,uk

第一行是表示嵌套对象层次结构的标题。我想要一个以下格式的json,

{
"data" : [
{
  "name" : "1",
  "friend" : ["x","y"],
  "address" : { "city" : "kolkata", "country" : "india" }
},
{
  "name" : "2",
  "friend" : ["a","b"],
  "address" : { "city" : "london", "country" : "uk" }
} ]
}

对象结构是动态的,我事先不知道列或标题,即我不能使用任何预定义的POJO来填充数据。在这个例子中,它" Person"对象,但它可能是任何对象结构。

我已经通过了Jackson或Gson API,但似乎没有人满足这一要求。有没有可以提供帮助的API?或任何其他出路?

由于

2 个答案:

答案 0 :(得分:0)

您需要分两步完成。

首先,您必须解析CSV。我推荐superCSV。解析CSV有时可能很花哨,所以我真的建议你使用一个库。

其次,您可以序列化为JSON。然后,您可以使用GSONjacksonflexjson,等等。

答案 1 :(得分:0)

经过漫长的谷歌......我发现唯一的选择就是在平面文件中表示基于集合的对象结构是重复的行,

person.name,person.friends,person.address.city,person.address.country
1,x,kolkata,india
1,y,kolkata,india
2,a,london,uk
2,b,london,uk

其中非数组元素重复。我们需要从中形成一个json,然后需要通过其ID(这里是person.name)过滤或绑定同一个对象