Alguém sabe se existe algum aplicativo que me permita converter preferencialmente XLS para JSON?
Também vou me contentar com um conversor de CSV, já que é isso que provavelmente vou acabar tendo que me escrever se não houver nada por perto.
Alguém sabe se existe algum aplicativo que me permita converter preferencialmente XLS para JSON?
Também vou me contentar com um conversor de CSV, já que é isso que provavelmente vou acabar tendo que me escrever se não houver nada por perto.
Respostas:
Isso funcionou perfeitamente para mim e NÃO requer um upload de arquivo:
Você pode tentar esta ferramenta que eu criei:
Ele converte em JSON, XML e outros.
Também é do lado do cliente, para que seus dados nunca saiam do computador.
Desde o Powershell 3.0 (fornecido com o Windows 8, disponível para Windows 7 e Windows Server 2008, mas não o Windows Vista), você pode usar o comando convertto-json interno:
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
Se você não consegue encontrar uma solução existente, é muito fácil criar uma solução básica em Java. Acabei de escrever um para um cliente e levou apenas algumas horas, incluindo ferramentas de pesquisa.
O Apache POI lerá o binário do Excel. http://poi.apache.org/
JSONObject criará o JSON
Depois disso, é apenas uma questão de iterar pelas linhas nos dados do Excel e construir uma estrutura JSON. Aqui estão alguns pseudocódigo para o uso básico.
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();
Isso funciona para mim e é executado no lado do cliente: http://www.convertcsv.com/csv-to-json.htm
Acabei de encontrar isso:
http://tamlyn.org/tools/csv2json/
(Nota: você precisa disponibilizar seu arquivo csv através de um endereço da web)
Experimente a pequena ferramenta gratuita:
Nenhuma das soluções existentes funcionou, então rapidamente cortei um script que faria o trabalho. Também converte cadeias vazias em nulos ee separa a linha do cabeçalho para JSON. Pode precisar ser ajustado dependendo do dialeto CSV e do conjunto de caracteres que você possui.
#!/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))
Em vez de conversores codificados, que tal o suporte CSV para Jackson (processador JSON): https://github.com/FasterXML/jackson-dataformat-csv . Então, o núcleo Jackson pode ler JSON como POJOs, Maps JsonNode
, quase tudo. E o suporte ao CSV pode fazer o mesmo com o CSV. Combine os dois e é um conversor muito poderoso, mas simples, entre vários formatos (já existem backends para XML, YAML e muito mais).
Um artigo que mostra como fazer isso pode ser encontrado aqui .
Veja se isso ajuda: Voltar para CSV - Converta texto CSV em objetos; via JSON
Esta é uma postagem de blog publicada em novembro de 2008 que inclui código C # para fornecer uma solução.
Desde a introdução na postagem do blog:
Como Json é mais fácil de ler e escrever do que Xml. Daqui resulta que o CSV (valores separados por vírgula) é mais fácil de ler e gravar do que o Json. O CSV também possui ferramentas como o Excel e outras que facilitam o trabalho e a criação. Portanto, se você quiser criar um arquivo de configuração ou de dados para o seu próximo aplicativo, aqui está um código para converter objetos CSV para JSON em POCO