Czy ktoś wie, czy istnieje aplikacja, która pozwoli mi przekonwertować najlepiej XLS na JSON?
Zadowolę się również konwerterem z CSV, ponieważ prawdopodobnie będę musiał sam napisać, jeśli nic nie ma w pobliżu.
Czy ktoś wie, czy istnieje aplikacja, która pozwoli mi przekonwertować najlepiej XLS na JSON?
Zadowolę się również konwerterem z CSV, ponieważ prawdopodobnie będę musiał sam napisać, jeśli nic nie ma w pobliżu.
Odpowiedzi:
To zadziałało idealnie dla mnie i NIE wymaga przesyłania pliku:
Możesz wypróbować to narzędzie, które stworzyłem:
Konwertuje do formatu JSON, XML i innych.
Wszystko to działa również po stronie klienta, więc Twoje dane nigdy nie opuszczają komputera.
Od wersji Powershell 3.0 (dostarczanej z Windows 8, dostępnej dla Windows 7 i Windows Server 2008, ale nie dla Windows Vista) można użyć wbudowanego polecenia 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
Jeśli nie możesz znaleźć istniejącego rozwiązania, dość łatwo jest zbudować podstawowe rozwiązanie w Javie. Właśnie napisałem jeden dla klienta i zajęło mi to tylko kilka godzin, łącznie z badaniem narzędzi.
Apache POI odczyta plik binarny Excel. http://poi.apache.org/
JSONObject utworzy JSON
Następnie wystarczy przejść przez wiersze w danych programu Excel i zbudować strukturę JSON. Oto pseudo kod do podstawowego zastosowania.
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();
To działa dla mnie i działa po stronie klienta: http://www.convertcsv.com/csv-to-json.htm
Właśnie znalazłem to:
http://tamlyn.org/tools/csv2json/
(Uwaga: musisz udostępnić swój plik csv za pośrednictwem adresu internetowego)
Wypróbuj małe darmowe narzędzie:
Żadne z istniejących rozwiązań nie działało, więc szybko zhakowałem skrypt, który wykonał zadanie. Konwertuje również puste ciągi na wartości null i oddziela wiersz nagłówka dla formatu JSON. Może wymagać dostrojenia w zależności od używanego dialektu i zestawu znaków 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))
Zamiast kodowanych na stałe konwerterów, co powiesz na obsługę CSV dla Jacksona (procesor JSON): https://github.com/FasterXML/jackson-dataformat-csv . Więc core Jackson może czytać JSON jako POJO, Mapy,JsonNode
, prawie wszystko. Obsługa CSV może zrobić to samo z CSV. Połącz oba, a jest to bardzo potężny, ale prosty konwerter między wieloma formatami (istnieją już backendy dla XML, YAML i więcej).
Artykuł, który pokazuje, jak to zrobić, można znaleźć tutaj .
Sprawdź, czy to pomoże: Wróć do CSV - Konwertuj tekst CSV na obiekty; przez JSON
To jest wpis na blogu opublikowany w listopadzie 2008 roku, który zawiera kod C # w celu dostarczenia rozwiązania.
Od wprowadzenia w poście na blogu:
Ponieważ Json jest łatwiejszy do czytania i pisania, a następnie Xml. Wynika z tego, że CSV (wartości oddzielone przecinkami) jest łatwiejszy do odczytania i zapisu niż Json. CSV zawiera również narzędzia, takie jak Excel i inne, które ułatwiają pracę i tworzenie. Jeśli więc kiedykolwiek zechcesz utworzyć plik konfiguracyjny lub plik danych dla swojej następnej aplikacji, oto kod do konwersji CSV na JSON do obiektów POCO