Конвертировать файл json в xml или csv, чтобы открыть его в OppenOffice / MS Excel - PullRequest
4 голосов
/ 02 августа 2011

Существует ли какой-либо инструмент, который может конвертировать файл json в файл xml или csv, который можно открыть в OpenOffice или Excel.

Я работаю над веб-приложением и использую MongoDB в качестве бэкэнда. Экспортировали данные как json из MongoDB и должны преобразовать данные в некоторый формат, который может быть открыт некоторыми программами для работы с электронными таблицами. Мне нужно передать эти данные клиенту, а также нарезать их кубиками и украсить, прежде чем передать их. Я планирую реализовать функцию, которая будет экспортировать необходимые данные в форматах .csv и .xls, но сейчас нужно быстрое грязное решение.

Мне пришлось сделать то же самое некоторое время назад и найти что-то (простой сценарий), которое спасло мой день. Не могу найти сценарий снова, любая помощь будет очень признательна.

ОБНОВЛЕНИЕ: Все еще искал решение и пытался собрать быстрый скрипт ruby, который может решить проблему. Кто-нибудь здесь знает, какой драгоценный камень в рельсах добавляет to_xml к хешу и массиву?

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Я попытался преобразовать json в xml со следующим кодом в консоли rails:

arr = []
File.readlines("some_name.json").each {|l| arr << JSON.parse(l)}
File.open("some_name.xml", "w").write(arr.to_xml)

Но у json были некоторые ключи с "$", и Excel отказался открыть файл xml.Поэтому я попытался снова с этим в консоли:

class Array
  def sanitize_for_xml
    self.each{|entry| entry.sanitize_for_xml if entry.respond_to?(:sanitize_for_xml)}
    self
  end
end

class Hash
  def sanitize_for_xml
    self.each do |key, value|
      self[key] = value.sanitize_for_xml if value.respond_to?(:sanitize_for_xml)
    end

    self.keys.each do |key|
      self[key.gsub(/\W/, "")] = self.delete(key)
    end
    self
  end
end

arr = []
File.readlines("galgotias.2010-08-02.json").each {|l| arr << JSON.parse(l)}
arr.sanitize_for_xml
File.open("galgotias.2010-08-02.xml", "w").write(arr.to_xml)

И смог открыть сгенерированный xml в Excel, хотя это не было превосходным превосходством, и я потратил много времени на его нарезку и нарезку.

0 голосов
/ 24 ноября 2012

Если ваши данные простые / плоские, то Квесты Жаба для облачных баз данных (Бесплатно) или Jaspersofts iReports можно использовать для прямого подключения к экземплярам / кластерам MongoDB и созданиявыпискаЕсли у вас есть несколько уровней вложенности, то, скорее всего, вы обнаружите, что существующих игрушек не хватает, как я это сделал в прошлом году, так что взломал что-то вместе как пробел. Этот мой EE-ответ основан на Perl, но может дать вам несколько идей, поскольку он с радостью отобразит JSON-файл в виде Grid на основе Dojo или преобразует его в XLS или XLSX и справится с несколькимиуровни вложенности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...