2016-07-28 17 views
1

私は、CSVは、このサンプルのようなファイルがあります。どのようにしてCSVをjsonファイルに変換できますか?

0 -8,396 13,414 -35,891 39,22489124 
1 -8,789 12,768 -35,891 39,09516883 
2 -9,136 12,768 -35,891 39,17463722 
3 -9,614 12,768 -35,891 39,2888623 
4 -9,614 12,397 -36,282 39,52844709 
5 -9,614 12,397 -36,282 39,52844709 

私はその形式でJSONファイルに変換する必要があります。

{"0": [-12.770680147058824, 1.846047794117647, -54.265625, 55.77863587895704], 
"1": [-18.388229927007298, 6.5360401459854014, -52.65647810218978, 56.156491225545878], 
"2": [-20.042738970588236, 12.849264705882353, -46.678308823529413, 52.399231898471129], 
"3": [-38.242244525547449, 15.836222627737227, -40.48357664233577, 57.897972254845804], 
"4": [-33.016879562043798, 6.3001824817518246, -38.179288321167881, 50.867127813832226]} 

私はそれを行うことができますどのように任意のアイデアを持っていますか? http://www.convertcsv.com/csv-to-json.htm

+0

これまでに何を試しましたか?あなたのコードを示してください。 – Soviut

答えて

1

は、このツールを使用してみてください最も。 私のようなラインの何かにラインでCSVファイルを読み込むのアプローチを取る:これはちょうどsudoのコードの例ですが、あなたはポイントを取得する必要があります

JSONObject jsn = new JSONObject() 
    for(line in csvfile){ 
     List lst = new ArrayList(); 
     String[] temp = line.split(","); //as it should be comma separated 
     for(int i=1;i<temp.len;++i){ 
      lst.add(temp[i]); 
     } 
     jsn.put(temp[0], list); 
    } 

+1

余分なヒントはありますか? – fao

+1

指示:ロケールの設定に応じて、コンマを入力してピリオドに変更する必要があります。 1.データを入力領域に貼り付けます。 2.入力オプション - フィールド区切り記号はスペースで、最初の行はヘッダー3のチェックを外します。ステップ4でテンプレートセットを{lb} {br}、セクションを "{f1}"に繰り返します:[{f2}、{f3 }、{f4}、{f5}]とBottomを{br} {rb}にして、CsvをTemplate経由でJSONに変換します。 – dataman

+0

@dataman - 優れた追加ヒント:) –

0

それはあなたが使用しているが、一般的な考え方は同じでなければなりませんどの言語を知らなくてもこれに答えることは難しい...パラメータとの少しを再生する:

0

これはCSV to JSON Converterを使用して任意の操作を行うことができます。

の例をクリックしてください。ヘッダーレスインデックスを選択してください。これは、この問題に基づいて例をロードします。次に、Convertをクリックします。この変換を実行する主な設定は、出力タイプディクショナリアレイです。

PS:あなたの入力は、区切り文字(1から3文字の範囲のスペース)で少し矛盾しています。私はそれがここにコピーを貼り付けた結果であり、元のファイルに区切り文字としてタブが付いていると推測しています。

免責事項:私はこのツールを作成しました。ここ

0

は、サンプルデータをfilter.jqこのフィルタを含み、data

0 -8,396 13,414 -35,891 39,22489124 
1 -8,789 12,768 -35,891 39,09516883 
2 -9,136 12,768 -35,891 39,17463722 
3 -9,614 12,768 -35,891 39,2888623 
4 -9,614 12,397 -36,282 39,52844709 
5 -9,614 12,397 -36,282 39,52844709 

タブ区切りデータを含む場合、

$ jq -M -R -r -s -f filter.jq data | \ 
    sed -e ':a' -e 'N' -e '$!ba' \ 
     -e 's/",\n /",/g' \ 
     -e 's/\[\n /\[/g' \ 
     -e 's/\n \]/\]/g' 

を生成 jq

reduce (
    split("\n")[]   # split string into lines 
    | split("\t")    # split into columns 
    | select(length>0)  # eliminate blanks 
    | map(gsub(",";"."))  # change decimal character 
) as $r (
    {} 
; .[$r[0]] = $r[1:]   # build requested result 
) 

を用いた溶液であります

{ 
    "0": [ "-8.396", "13.414", "-35.891", "39.22489124"], 
    "1": [ "-8.789", "12.768", "-35.891", "39.09516883"], 
    "2": [ "-9.136", "12.768", "-35.891", "39.17463722"], 
    "3": [ "-9.614", "12.768", "-35.891", "39.2888623"], 
    "4": [ "-9.614", "12.397", "-36.282", "39.52844709"], 
    "5": [ "-9.614", "12.397", "-36.282", "39.52844709"] 
} 

最後にsedは、このスタックオーバーフローの例でよりコンパクトなJSONを表示することに注意してください。