できればXLSをJSONに変換できるアプリケーションがあるかどうか知っている人はいますか?
また、CSV からのコンバーターを使用することにします。これは、周りに何もない場合、おそらく自分で作成する必要があるためです。
これは私にとっては完璧に機能し、ファイルのアップロードは必要ありません:
Powershell 3.0(Windows8に同梱されています。Windows7およびWindowsServer 2008で使用できますが、Windows Vistaでは使用できません)以降、組み込みのconvertto-jsonコマンドレットを使用できます。
PS E:> $topicsjson = import-csv .\itinerary-all.csv | ConvertTo-Json
PS E:\> $topicsjson.Length
11909
PS E:\> $topicsjson.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
既存のソリューションが見つからない場合、Java で基本的なソリューションを構築するのは非常に簡単です。私はクライアント向けに書いたばかりで、ツールの調査を含めて数時間しかかかりませんでした.
Apache POI は Excel バイナリを読み取ります。 http://poi.apache.org/
JSONObject は JSON を構築します
その後は、Excel データの行を繰り返し処理し、JSON 構造を構築するだけです。基本的な使い方の疑似コードを次に示します。
FileInputStream inp = new FileInputStream( file );
Workbook workbook = WorkbookFactory.create( inp );
// Get the first Sheet.
Sheet sheet = workbook.getSheetAt( 0 );
// Start constructing JSON.
JSONObject json = new JSONObject();
// Iterate through the rows.
JSONArray rows = new JSONArray();
for ( Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext(); )
{
Row row = rowsIT.next();
JSONObject jRow = new JSONObject();
// Iterate through the cells.
JSONArray cells = new JSONArray();
for ( Iterator<Cell> cellsIT = row.cellIterator(); cellsIT.hasNext(); )
{
Cell cell = cellsIT.next();
cells.put( cell.getStringCellValue() );
}
jRow.put( "cell", cells );
rows.put( jRow );
}
// Create the JSON.
json.put( "rows", rows );
// Get the JSON text.
return json.toString();
これは私にとってはうまくいき、クライアント側で実行されます: http://www.convertcsv.com/csv-to-json.htm
既存のソリューションはどれもうまくいかなかったので、すぐにその仕事をするスクリプトをハックしました。また、空の文字列を null に変換し、JSON のヘッダー行を分離します。使用している CSV の方言と文字セットによっては、調整が必要になる場合があります。
#!/usr/bin/python
import csv, json
csvreader = csv.reader(open('data.csv', 'rb'), delimiter='\t', quotechar='"')
data = []
for row in csvreader:
r = []
for field in row:
if field == '': field = None
else: field = unicode(field, 'ISO-8859-1')
r.append(field)
data.append(r)
jsonStruct = {
'header': data[0],
'data': data[1:]
}
open('data.json', 'wb').write(json.dumps(jsonStruct))
これが役立つかどうかを確認してください: CSV に戻る - CSV テキストをオブジェクトに変換します。JSON経由
これは 2008 年 11 月に公開されたブログ投稿で、ソリューションを提供する C# コードが含まれています。
ブログ投稿のイントロから:
JsonはXmlよりも読み書きが簡単です。したがって、Json よりも CSV (コンマ区切り値) の方が読み書きが簡単です。CSV には、Excel などのツールもあり、操作や作成を簡単に行うことができます。したがって、次のアプリの構成ファイルまたはデータ ファイルを作成する必要がある場合は、CSV を JSON から POCO オブジェクトに変換するコードを次に示します。
ハードコーディングされたコンバーターの代わりに、Jackson (JSON プロセッサー) の CSV サポートはどうですか: https://github.com/FasterXML/jackson-dataformat-csv。そのため、コアの Jackson は JSON を POJO、マップなどJsonNode
、ほとんど何でも読み取ることができます。CSV サポートは、CSV でも同じことができます。この 2 つを組み合わせると、非常に強力ですが、複数のフォーマット間のシンプルなコンバーターになります (XML、YAML 用のバックエンドが既にあり、さらに追加されています)。
これを行う方法を示す記事は、ここにあります。