是否有任何可用的工具可以将json文件转换为可以在OpenOffice或Excel中打开的xml或csv文件。
我正在开发一个Web应用程序并使用MongoDB作为后端。已经将数据从MongoDB导出为json,并且需要以某种格式转换数据,这些格式可以通过某些电子表格软件打开。我需要将这些数据提供给客户端,并在切换之前对切片和骰子进行装饰。我打算实现一个以.csv和.xls格式导出所需数据的功能,但现在需要一个快速的脏解决方案。
我不得不在一段时间后做同样的事情并找到一些东西(一个简单的脚本)来拯救我的一天。无法再找到脚本,非常感谢任何帮助。
更新:仍在寻找解决方案,并试图组装一个可以解决问题的快速ruby脚本。这里的任何人都知道rails中哪个gem添加to_xml
到hash和array?
答案 0 :(得分:1)
我尝试使用rails console中的以下代码将json转换为xml:
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)
并且能够在Excel中打开生成的xml,虽然它不是一个很好的excel,我花了很多时间切片和切割它。
答案 1 :(得分:0)
如果您的数据是简单/平坦的,那么Quests Toad for Cloud Databases(免费)或Jaspersofts iReports可用于直接连接到MongoDB实例/群集并生成提取。如果你有多个级别的嵌套,那么你可能会发现现有的玩具缺乏,就像我去年所做的一样,所以将一些东西作为一个停止间隙。 This EE answer of mine是基于Perl的,但可能会给你一些想法,因为它会很乐意将JSON文件显示为基于Dojo的网格,或将其转换为XLS或XLSX,并将处理多层嵌套。