有什麼辦法在Ruby中將JSON轉換爲XML?如何將JSON轉換爲Ruby中的XML?
回答
require 'active_support' #for to_xml() 'gem install activesupport' use the 2.3 branch
require 'json' #part of ruby 1.9 but otherwise 'gem install json'
my_json = "{\"test\":\"b\"}"
my_xml = JSON.parse(my_json).to_xml(:root => :my_root)
還要注意to_xml根的說法。如果你沒有指定一個根目錄,它會使用'hash'這個詞作爲根,這看起來不是很好。
我不知道一個神奇的寶石來做它,但你可以輕鬆做到的是xml哈希和哈希到json。
require 'active_support'
my_hash = Hash.from_xml(my_xml)
然後
require 'json'
my_json = my_hash.to_json
我想將JSON轉換爲XML,而不是XML到JSON – 2010-11-24 23:21:20
無論如何,這些奇怪的引號是否正常工作?這看起來不太健康。 – jwueller 2010-11-24 23:25:12
關於@rwilliams又名R-配音答案:
ActiveSupport moved its components成粒度單獨的模塊。我們可以告訴它只加載特定的子集,或者如果我們仍然選擇,我們可以一次加載所有內容,而不是一次加載所有內容。無論如何,我們不能像以前那樣使用require 'activesupport'
,而必須使用require 'activesupport/all'
或其中一個子集。
>> require 'active_support/core_ext/array/conversions' #=> true
>> [{:a => 1, :b => 2}, {:c => 3}].to_xml
=> "<?xml version="1.0" encoding="UTF-8"?>\n<objects type="array">\n <objects a="1" b="2" type="hash"/>\n <objects c="3" type="hash"/>\n</objects>\n"
此外,包含的ActiveSupport JSON支持,這樣你就可以做AR整個轉換:在XML和JSON轉換
>> require 'active_support/all' #=> true
>> json = {'foo'=>'bar'}.to_json #=> "{"foo":"bar"}"
>> ActiveSupport::JSON.decode(json).to_xml #=> "<?xml version="1.0" encoding="UTF-8"?>\n<hash>\n <foo>bar</foo>\n</hash>\n"
第一行負載。第二行建立一個JSON樣本用於測試。第三行使用假裝的JSON,對其進行解碼,然後將其轉換爲XML。
其他答案不允許簡單的遞歸轉換。正如this answer on Code Review中所解釋的那樣,您需要一個自定義助手來創建您正在查找的簡單格式。
它會變成這樣......
data = [
{ 'name' => 'category1',
'subCategory' => [
{ 'name' => 'subCategory1',
'product' => [
{ 'name' => 'productName1',
'desc' => 'desc1' },
{ 'name' => 'productName2',
'desc' => 'desc2' } ]
} ]
},
{ 'name' => 'category2',
'subCategory' => [
{ 'name' => 'subCategory2.1',
'product' => [
{ 'name' => 'productName2.1.1',
'desc' => 'desc1' },
{ 'name' => 'productName2.1.2',
'desc' => 'desc2' } ]
} ]
},
]
...這個:
<?xml version="1.0"?>
<root>
<category>
<name>category1</name>
<subCategory>
<name>subCategory1</name>
<product>
<name>productName1</name>
<desc>desc1</desc>
</product>
<product>
<name>productName2</name>
<desc>desc2</desc>
</product>
</subCategory>
</category>
<category>
<name>category2</name>
<subCategory>
<name>subCategory2.1</name>
<product>
<name>productName2.1.1</name>
<desc>desc1</desc>
</product>
<product>
<name>productName2.1.2</name>
<desc>desc2</desc>
</product>
</subCategory>
</category>
</root>
- 1. 如何將XML轉換爲JSON?
- 2. 如何將JSON字典轉換爲XML?
- 3. 將JSON轉換爲Ruby中的hashmap
- 4. 將XML轉換爲JSON
- 5. Angular2:將XML轉換爲JSON
- 6. 將JSON轉換爲Java中的XML
- 7. 將xml轉換爲node.js中的json
- 8. 在Ruby中將YAML轉換爲XML?
- 9. 如何在XML中將XML轉換爲JSON?
- 10. 如何使用xsi:nil = true將xml元素轉換爲json如何使用xsi:nil = true將WSO2 ESB -Xml轉換爲JSON
- 11. 將JSON轉換爲XML並保存XML
- 12. 在java中將嵌套的xml/json轉換爲純xml/json
- 13. 將XML轉換爲Json並從轉換的Json中刪除XML聲明
- 14. 如何將Ruby對象轉換成JSON
- 15. 如何將Badgerfish風格的JSON轉換爲Java中的XML?
- 16. 如何將xml轉換爲Oracle中的json?
- 17. 如何將XML轉換爲Python中的JSON?
- 18. 如何將xml轉換爲角4中的json?
- 19. 如何將XML/JSON文件轉換爲Lotus Notes中的文檔?
- 20. 如何將XML轉換爲JSX中的JSON對象?
- 21. 如何在Ruby 1.9中將哈希轉換爲JSON字符串?
- 22. 將XML轉換爲iOS中的JSON轉換
- 23. 將XML轉換爲iOS中的JSON轉換
- 24. 將XML轉換爲Ruby代碼
- 25. Ruby RestClient將XML轉換爲散列
- 26. 如何將XML轉換成JSON在Python
- 27. 如何從新轉換的xml中將值轉換爲json數據結構?
- 28. 如何將.xml文件轉換爲ruby數組的實例?
- 29. 如何在Orbeon中將JSON轉換爲XML?
- 30. 如何在Swift中將JSON轉換爲XML?
我添加了`activesupport`標籤,並把你的標題變成一個問題。 – 2010-11-25 03:13:48