将CSV转换为唯一JSON的方法

时间:2016-07-21 21:26:20

标签: json node.js csv parsing extract

我需要将.CSV转换为特定的.JSON格式,我决定使用NPM的csvtojson包,因为它似乎是为这类事物而设计的。

首先,我的问题有一点背景。我有.CSV数据看起来类似于:

scan_type, date/time, source address, source-lat, source-lng, dest address, dest-lat, dest-lng

nexpose,2016-07-18 18:21:44,1008,40.585260,-10.124120,10.111.131.4,10.844880,-10.933360

我有一个普通的csv-to-json转换器here,但是有一个问题。它输出一个相当简单的文件,我需要拆分源/目标,并添加一些特殊的格式,我将在稍后展示。

[
 {
 "scan_type": "nexpose",
 "date/time": "2026-07-28 28:22:44",
 "source_address": 2008,
 "source-lat": 10.58526,
 "source-lng": -105.08442,
 "dest_address": "11.266.282.0",
 "dest-lat": 11.83388,
 "dest-lng": -111.82236
 }
]

我需要做的第一件事是能够分离"来源"价值来自"目的地"值。这是我想要"来源"的一个例子。值看起来像:

var destination 将是完全相同的格式)

var source={
    id: "99.58926-295.09492",
    "source-lat": 49.59926,
    "source-lng": -209.98942,
    "source_address": 2009,
    x: {
        valueOf: function() {
            var latlng=[
                49.58596,
                -209.08442
            ]; 
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[0]; //xy.x
        },

        y: {
            valueOf: function(){
                varlatlng=[
                    49.58596,
                    -209.08442
                ];                          
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[1]; //xy.y
        }
    }

所以,我的问题是,我该如何处理转换数据?我应该用csvtojson转换所有内容吗?或者我应该从我生成的普通.JSON文件转换它吗?

有没有人有任何建议或类似的例子,他们可以分享如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我在解析CSV数据方面做了很多工作,我相信你已经看到了,很难解析和使用CSV,因为有大量的边缘情况可以打破最坚固的解析器(虽然看起来您的数据集相当简单,但这并不是一个大问题)。更不用说通过在从磁盘读取时执行操作可能会导致损坏,因此将数据从CSV获取到JSON文件然后对从“普通”JSON加载的JSON对象进行任何操作是一个更好的主意。文件。

tl; dr:转换普通.JSON文件中的数据