title: D3.js "exporting" the data
body: <p>I am running Django 1.5.1 and Python 2.7, along with D3.js v3.</p>
  
  <p>I have created a GUI where a user can dynamically add / delete nodes from a D3.js collapsable indented tree (like this <a href="http://bl.ocks.org/mbostock/1093025" rel="nofollow">block</a>, but with buttons for add / remove). This all works fine on the browser side.</p>
  
  <p>However, I would now like to save the user's changes into my database, via Django / Python. Is it possible to "export" my data from d3 and pass it to a Django view? From the <a href="https://github.com/mbostock/d3/wiki/API-Reference" rel="nofollow">documentation</a>, it seems no, or at least I didn't see any command for it. I have tried to do a simple POST using Ajax, but the problem is that d3.selectAll returns objects...which are slightly recursive and cause my browser's stack to overflow. Example code is here:</p>
  
  <pre><code>var nodes = d3.selectAll('g.node');
  var root_node = nodes[0][0].__data__;
  var children = root_node.children;
  
  $.ajax({
      type: "POST",
      url: "update_map/",
      data: {
          'children': children,
          'bank': obj_bank_id
      },
      success: function( result ) {
          if (result == true) {
              lscache.set( 'canvas_clean', 'true' );
          } else {
              alert( 'Error in saving data' );
          }
      },
      error: function( xhr, status, error ){
          alert( error );
      }
  });
  </code></pre>
  
  <p>The issue I see (using Chrome's developer tools) is that 'children' is essentially infinitely long--it is an array of objects, but within each object is a "parent" object that includes all of its children, etc. ad inifinitum. A chunk is below:</p>
  
  <pre><code>Object {source: "", item_class: "root", name: "Topics", children: Array[76], x0: 0…}
  children: Array[76]
      0: Object
          _children: Array[0]
          bank: "objectivebank"
          children: null
          depth: 1
          id: 2
          item_class: "objective"
          item_id: "objective"
          name: "Antiderivative"
          parent: Object
              children: Array[76]
              depth: 0
  </code></pre>
  
  <p>So is there a way to get a "flat" view of all the nodes without d3 metadata either using built-in d3.js commands, or some other way? I would like something cleaner, but do I just have to save things in a separate object? Thanks!</p>