Y a-t-il un moyen de convertir Json en XML dans Ruby? P>
4 Réponses :
Je ne connais pas un joyau magique pour le faire, mais ce que vous pouvez faire facilement est XML à hachage et hachage à JSON.
require 'json' my_json = my_hash.to_json
J'essaie de convertir Json en XML, pas XML à JSON
Ces citations étranges vont-elles au travail, de toute façon? Cela ne semble pas trop en bonne santé.
@Ellusive: Ouais, ils ont l'air funky pour moi aussi. Je pense qu'ils sont des citations intelligentes.
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) Also note the root argument of to_xml. If you don't specify a root it'll use the word 'hash' as the root which isn't very nice to look at.
Ai-je besoin de bijou pour le actif_support code>? Je reçois une erreur lorsque j'essaie de
besoin code>.
Oui. Le support actif fait partie du rubis sur les rails. Vous devriez être capable de l'installer avec 'GEM Install ActiveUpport'
Maintenant, chaque fois que j'essaie de l'exécuter, je reçois l'erreur suivante: méthode non définie code> to_xml 'for #
. CODE> JSON.PARSE` devrait retourner un hachage, ne devrait-il pas?
Oui, ça devrait retourner un hachage. Pouvez-vous poster votre XML?
Je n'ai pas de xml, j'ai du Json, c'est la source JSON renvoyée par l'API Simplenote. C'est un diable de beaucoup de données. Voici le Json Je reviens: GIST.GITUB.COM/B41CD5BB01F6D5DE1053
Ça fonctionne bien pour moi. J'utilise JSON_PURE (1.2.0) et Active_Support (2.3.5). Quelles versions utilisez-vous?
J'utilise JSON_PURE (1.4.6) et Active_Support (3.0.3). Dois-je les désinstaller et essayer avec les versions que vous utilisez?
Je ne peux rien voir blessant quoi que ce soit.
Ouais on dirait qu'ils ont changé d'activesUpport une tonne pour 3.0 et les méthodes TO_XML ne sont plus là.
Après la rétrogradation de JSON_PURE et Active_Support, je reçois cette erreur: gist.github.com/00e934871ea4529fd132
Et, aussi, je serai dans la discussion de rubis si vous souhaitez continuer là-bas.
Quelle version des rubygems utilisez-vous?
D'accord. Je suis aussi dans la chaîne de rubis maintenant.
ActiveSupport ne importe plus toutes les fonctionnalités lorsque vous en avez besoin. Vous devez soit explicitement dire pour importer tout ou spécifier ce que vous voulez. Si la fonction TO_XML n'a pas été définie, vous pourriez avoir ce problème. Voyez ici: Stackoverflow.com/Questtions/3642905/...
En ce qui concerne @Rwilliams AKA R-DUB Réponse:
ActiveSupport déplacé ses composants en séparément Modules pour la granularité. Plutôt que de tout charger à la fois, nous pouvons le dire de ne charger que certains sous-ensembles ou, si nous choisissons toujours, nous pouvons tout charger à la fois. Peu importe ce que, nous ne pouvons pas utiliser De plus, ActiveSupport contient une prise en charge JSON, de sorte que vous puissiez effectuer la conversion entière avec AR: P> nécessiter "ActiveSupport" code> comme nous l'avions l'habitude, nous devons utiliser
nécessiter "ActiveSupport / tout" code> ou l'un des sous-ensembles. p>
>> 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"
Les autres réponses ne permettent pas de conversions de simples conversions. Comme expliqué dans Cette réponse sur le code de code , vous aurez besoin d'une assistance personnalisée pour créer le format simple que vous êtes. À la recherche.
Il va tourner cela ... p> ... dans ceci: p>
J'ai ajouté la balise code> ActiveSupport Active> et a transformé votre titre en une question.