11

A Dataset seems perfect to represent structured data.

Has anyone already thought about how to convert as efficiently/elegantly as possible an XML or JSON file to a Dataset in Mathematica 10 ?

Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
faysou
  • 10,999
  • 3
  • 50
  • 125

1 Answers1

14

To convert JSON to Dataset we can use GeneralUtilities`ToAsssociations as was first mentioned by rm-rf here.

Example using the Stackexchange API (the ten most up voted posts, questions and answers, on this site):

json = Import["http://api.stackexchange.com/2.2/posts?pagesize=10&order=desc&sort=votes&site=mathematica&filter=!LH22RQM95veNmsOfuhD0xa", "JSON"]
Needs["GeneralUtilities`"]
dataset = Dataset[ToAssociations@json]["items"]

enter image description here

For the record, doing it without ToAssociation isn't that hard either:

Dataset[Map[Association, "items" /. json]]
C. E.
  • 70,533
  • 6
  • 140
  • 264
  • Have you tried more structured hierarchical data? – alancalvitti Jan 30 '15 at 21:31
  • @alancalvitti The other part of the OP's question (XML) is answered by WReach (see his comment). I'm taking a stab at HTML here, but I don't go as far as putting the data into Association. – C. E. Jan 30 '15 at 21:52