<br><br><div class="gmail_quote">On Thu, Oct 4, 2012 at 8:07 PM, Nicholas C. Zakas <span dir="ltr"><<a href="mailto:standards@nczconsulting.com" target="_blank">standards@nczconsulting.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
    <br>
    <div>On 10/4/2012 11:30 AM, Allen
      Wirfs-Brock wrote:<br>
    </div>
    <blockquote type="cite"><br>
      <div>
        <div><br></div>
      </div>
      <div>If there is such a thing as a rational default.  And it gets
        harder to define as you move from Set on to Map.</div>
      <div><br>
      </div>
      <div>In either case, you are really defining a new application
        schema layer on top of JSON that requires custom
        deserialization. It won't  be meaningful to  JSON clients that
        don't know your schema conventions.  Arguably, having { } as the
        the default JSON serialization for Set and Map serves as a
        reminder to developers that if they want to use JSON to
        serialize those abstraction they will need to coordinate with
        clients in a deeper way than is required for simple arrays and
        struct like objects. </div>
      <div><br>
      </div>
      <div>Allen</div>
    </blockquote></div></div>
    I agree, I'm not sure there is a rational default for Map, but I
    think there is one for Set as an array (and it seems like most
    people agreed). </div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    I don't think that the ability to deserialize should be the deciding
    factor. After all, Date objects are serialized into a string that
    isn't deserialized back into a Date object unless you provide your
    own reviver.</div></blockquote><div><br></div><div>Yes, I still agree with the Set->(as Array)->JSON</div><div><br></div><div>and...</div><div><br></div><div><div>new Date(</div><div>  JSON.parse(</div><div>    JSON.stringify(</div>

<div>      new Date()</div><div>    )</div><div>  )</div><div>);</div></div><div><br></div><div><br></div><div>Results in Date object, as I would expect. So I'd expect...</div><div><br></div><div><div>new Set(</div><div>

  JSON.parse(</div><div>    JSON.stringify(</div><div>      new Set([1,2,3,4,5])</div><div>    )</div><div>  )</div><div>);</div></div><div><br></div><div><br></div><div>To result in a Set </div><div><br></div><div><br></div>

<div>Rick</div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">

<div class="im"><br>
    <br>
    -N<br></div></div></blockquote></div>