2017-02-22 34 views
1

JavaScriptオブジェクト/ JSONをCSVファイルに変換するためにPapaParseライブラリ(http://papaparse.com/)を使用しようとしています。特に私の場合、各レコードは異なるフィールドを持つことがあります。結果のCSV出力を、指定されたレコードのすべてのフィールドを集計してください。下記のJSONを取る: -PapaParseの "unparse"関数はさまざまなヘッダーで動作できますか?

[ 

{"name":"ken", 
    "age":"35"}, 

{"name":"joe", 
    "age":"37", 
    "shoe_size":"12"}, 

{"name":"fred", 
    "age":"26", 
    "favourite_colour":"blue"} 

] 

あなたが「フレッド」は「shoe_sizeを」持っている「favourite_colour」、および「ジョー」を持っていることがわかりますし、彼らはすべての名前と年齢を持っています。

は、私はここにそのコードを貼り付けた場合:https://konklone.io/json/

が、私はこのような何かを得る: -

name age shoe_size favourite_colour 
ken  35  
joe  37 12 
fred 26    blue 

は基本的に、それはデータセット全体を解析し、それが存在する場合は、各ヘッダを移入し、何がありますが欲しいです。私はPapaParse機能を使用する場合ただし、: -

Papa.unparse('[{"name":"ken","age":"35"},{"name":"joe","age":"37","shoe_size":"12"},{"name":"fred","age":"26","favourite_colour":"blue"}]',{type:"text/csv;charset=utf-8"}); 

を私が取得: -

name age 
ken  35 
joe  37 
fred 26 

だから、Papa.unparse()関数は、最初のヘッダーのノートを取っていることが表示されますレコードを削除し、その後に発生するレコードは無視します。

私は理論でが、私はそれが空白だ場合でも、第一レコードはすべてのフィールドを持っていることを確認することによって、それをごまかすことができることを知っているが、それは、そのような説得することなく、このように動作するだろう機能/オプションがあったかどうかを疑問に思いました

おかげ

答えて

0

私はあなたがこのように、unparseに明示的にフィールドを渡すことができると思う:

var csv = Papa.unparse({ 
fields: ["name", "age", "shoe_size", "favourite_color"], 
data: [ 

{"name":"ken", 
    "age":"35"}, 

{"name":"joe", 
    "age":"37", 
    "shoe_size":"12"}, 

{"name":"fred", 
    "age":"26", 
    "favourite_colour":"blue"} 
    ] 
}); 
+0

はい、私はそれが仕事だと思う - それは余分ですので、最初のコースのフィールドの配列を構築する必要がありますしかし、あまりに面倒ではありません。しかし、私の特定のユースケース(csvへの変換のみ)では、PapaParseが過剰であるようですが、必要な変換を実行するためにhttps://github.com/evanplaice/jquery-csvを使用しました。しかし、私はPapaParseを使用し、双方向変換が必要な場合、このソリューションは素晴らしいと思います。 – stuffandting

関連する問題