2017-07-10 55 views
0

我建立,在以下的形式轉換JSON來CSV的應用程序:嵌套JSON對象:在CSV導出刪除參考源級JSON

[ 
{ 
    "_type": "End", 
    "_source": { 
     "timestamp_milli": 1499696661704, 
     "timestamp": "2017-07-10T14:24:21.704Z", 
     "country": "United States", 
     "country-code": "US" 
    } 
}, 
{ 
    "_type": "Info", 
    "_source": { 
     "timestamp_milli": 1499696614807, 
     "timestamp": "2017-07-10T14:23:34.807Z", 
     "country": "United States", 
     "country-code": "US" 
    } 
}, 
{ 
    "_type": "Menu", 
    "_source": { 
     "timestamp_milli": 1499696578167, 
     "timestamp": "2017-07-10T14:22:58.167Z", 
     "country": "United States", 
     "country-code": "US" 
    } 
} 
] 

現在我使用jsonexport NPM包,其產生上述JSON文檔的CSV文件格式如下:

_type,_source.timestamp_milli,_source.timestamp,_source.country,_source.country-code 
End,1499696661704,2017-07-10T14:24:21.704Z,United States,US 
Info,1499696614807,2017-07-10T14:23:34.807Z,United States,US 
Menu,1499696578167,2017-07-10T14:22:58.167Z,United States,US 

我被卡住,試圖刪除「_source」。來自生成的.csv文件標題的文本。 JSON文檔將始終具有相同的結構,但「_source」中的元素將根據用戶輸入進行更改。我試圖在沒有對JSON中的任何鍵進行硬編碼的情況下完成此操作。

有人可以幫我找出使用node.js的最佳方法嗎?我有幾個不同的想法是從JSON文檔中刪除「_source」級別,或者修剪「_source」。我將它返回給瀏覽器之前,來自csv文件的文本。

回答

2
[ 
    { 
     "_type" : "End", 
     "_source" : { 
      "timestamp_milli" : 1499696661704, 
      "timestamp" : "2017-07-10T14:24:21.704Z", 
      "country" : "United States", 
      "country-code" : "US" 
     } 
    }, 
    { 
     "_type" : "Info", 
     "_source" : { 
      "timestamp_milli" : 1499696614807, 
      "timestamp" : "2017-07-10T14:23:34.807Z", 
      "country" : "United States", 
      "country-code" : "US" 
     } 
    }, 
    { 
     "_type" : "Menu", 
     "_source" : { 
      "timestamp_milli" : 1499696578167, 
      "timestamp" : "2017-07-10T14:22:58.167Z", 
      "country" : "United States", 
      "country-code" : "US" 
     } 
    } 
].map((item) => { 
    // assign nested properties from _source 
    Object.assign(item, item._source); 
    // remove _source from item 
    delete item._source; 
}); 
+0

沒關係,得到了它使用此: https://gist.github.com/Joeymarinello1/7af1d759528da8af63a87edd151a6c09 謝謝! –