<div dir="ltr">I second this. I have not yet gotten to the point in my project where I need this. But it is certainly a need looming out there on the horizon. With Yaws/Erlyweb/MochiWeb/etc becoming more prevalent and important. I could see this being a huge win for ajax/comet libraries. <br>
<br><div class="gmail_quote">On Thu, Jul 24, 2008 at 1:19 PM, Jonathan Gray <<a href="mailto:jlist@streamy.com">jlist@streamy.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Joe,<br>
<br>
It would certainly ease our integration.  JSON is certainly becoming<br>
ubiquitous and tighter integration with Erlang would be very useful.<br>
<br>
One note, in my current implementation and in general, there's no real<br>
direct mapping for JSON objects/dictionaries.  While Erlang does have dicts,<br>
we were never able to "create" them using erl_interface/ei, though I'm sure<br>
it's possible by dissecting the dict representation.  I use a {obj, [{},{}]}<br>
type representation now to handle JSON objects in Erlang.  Any thoughts?<br>
<br>
+1 on new JSON BIFs :)  Willing to help in any way I can.<br>
<font color="#888888"><br>
Jonathan Gray<br>
</font><div class="Ih2E3d"><br>
-----Original Message-----<br>
From: <a href="mailto:erlang-questions-bounces@erlang.org">erlang-questions-bounces@erlang.org</a><br>
</div><div class="Ih2E3d">[mailto:<a href="mailto:erlang-questions-bounces@erlang.org">erlang-questions-bounces@erlang.org</a>] On Behalf Of Joe Armstrong<br>
Sent: Thursday, July 24, 2008 3:49 AM<br>
To: Martin Carlson<br>
Cc: <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
Subject: Re: [erlang-questions] fast JSON parser in C<br>
<br>
</div><div><div></div><div class="Wj3C7c">Since JSON seem to be ubiquitous is seems to me that there would be<br>
a strong case for a couple of new BIFs,  term_to_json and json_to_term.<br>
these would work like binary_to_term and term_to_binary the difference<br>
being that<br>
instead of converting to a binary containing the external term format,<br>
we convert<br>
to a binary containing a JSON encoded string.<br>
<br>
I imaging that modeling this code on the existing term_to_binary and<br>
binary_to_term<br>
code would not be impossibly difficult (you have to make it reentrant<br>
and not to<br>
not hog the CPU for too long ... and so on ...)<br>
<br>
And yes - it is pretty horrid increasing the number of BIFs but this<br>
might just be<br>
a useful addition.<br>
<br>
This would ease seamless integration with a lot of external programs :-)<br>
<br>
/Joe Armstrong<br>
<br>
On Thu, Jul 24, 2008 at 11:02 AM, Martin Carlson<br>
<<a href="mailto:martin@erlang-consulting.com">martin@erlang-consulting.com</a>> wrote:<br>
> You might want to go with the ei interface rather than the erl_interface<br>
> since it is not as clumsy to use. Further, you might want to have a look<br>
> at the ejabberd expat driver and just replace the expat stuff with your<br>
> json SAX events.<br>
><br>
>  -Martin<br>
><br>
> Chris Anderson wrote:<br>
>> On Wed, Jul 23, 2008 at 1:49 PM, Jonathan Gray <<a href="mailto:jlist@streamy.com">jlist@streamy.com</a>> wrote:<br>
>>> However when I get a big chunk (around 80-120K) directly from Erlang as<br>
>>> binary (using term_to_binary in erlang), I'm unable to decode it using<br>
>>> erl_interface erl_decode, though it can be decoded fine from within<br>
Erlang.<br>
>><br>
>> Good to know - CouchDB's Erlang -> JSON encoding is fast enough to not<br>
>> need help from C. I'm just working on making the JSON -> Erlang fast<br>
>> enough, so as long as I can get string buffers over to C in the first<br>
>> place, it sounds like you're not having a problem moving data from C<br>
>> back to Erlang.<br>
>><br>
>> Time to buckle down and code!<br>
>><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>
><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>
<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><br clear="all"><br>-- <br>An idea that is not dangerous is unworthy of being called an idea at all. -- Oscar Wilde
</div>