<div dir="ltr">Pattern matching:<br><br>1> Decoded = mochijson:decode(JSON).<br>2> ["foo",{"bar":[1,2,{"ugh":MYNUMBER}, 4]}] = Decoded.<br>["foo",{"bar":[1,2,{"ugh":7}, 4]}]<br>
3> MYNUMBER.<br>7<br><br><br><br><div class="gmail_quote">On Thu, Aug 14, 2008 at 12:12 AM, Richard A. O'Keefe <span dir="ltr"><<a href="mailto:ok@cs.otago.ac.nz">ok@cs.otago.ac.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On 14 Aug 2008, at 12:27 am, Bharani wrote:<br>
> so that i can simple say get(<json string>,"obj1.obj2.field")<br>
><br>
> is this right way to do or can any one point out best practices<br>
<br>
</div>If you are *given* things like "obj1.obj2.field", this is not a<br>
bad way to do it.  But what if you have<br>
        ["foo",{"bar":[1,2,{"ugh":77},4]}]<br>
and you want the 77?<br>
<br>
For the sake of argument, let's suppose you are using a JSON<br>
representation where<br>
<br>
        number -> number<br>
        "string" -> <<"string"><br>
        [X1,...,Xn] -> [X'1,...,X'n]<br>
        {"l1":X1,...,"ln":Xn} -> [{<<"l1">>,X'1},...,{<<"ln">>,X'n}]<br>
        {} -> [{}]<br>
<br>
Then the path to the 77 would be<br>
        [2,<<"bar">>,3,<<"ugh">>]<br>
You _can't_ handle this by splitting "2.bar.3.ugh" into tokens,<br>
because "2" and "3" are perfectly good field names in JSON.<br>
Come to think of it,<br>
        {"obj1.obj2.field":137}<br>
is a perfectly good JSON object; nothing anywhere says that a<br>
JSON field label cannot contain dots.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>