I'm working on a v8 embedding that needs to take a JSON file as a
command line argument. I'd prefer not to Script::Run() it directly,
for the usual reason folks don't want to eval() json. Is there a
native API for JSON.parse()?
On Thu, Apr 29, 2010 at 1:17 AM, Robert Ginda <rgi...@chromium.org> wrote:
> I'm working on a v8 embedding that needs to take a JSON file as a
> command line argument. I'd prefer not to Script::Run() it directly,
> for the usual reason folks don't want to eval() json. Is there a
> native API for JSON.parse()?
You may want to check out the list of implementations near the bottom of the
page at:
the only one of those i've used is jsoncpp, which is really simple to use
but also has a few incompatibilities with JS/JSON which might annoy or
hinder certain users (e.g. properties are stored in lexical sort order,
instead of their insertion order, and the default value for a JS var is null
instead of undefined (a value the framework doesn't account for at all)).
Thanks for the quick reply, but I was hoping to use v8's native parser.
I imagine worst-case I can get a reference to the context's JSON.parse
function and Function::Call() it, which I'd prefer over adding another
dependency.
On Wed, Apr 28, 2010 at 4:21 PM, Stephan Beal <sgb...@googlemail.com> wrote:
> On Thu, Apr 29, 2010 at 1:17 AM, Robert Ginda <rgi...@chromium.org> wrote:
>> I'm working on a v8 embedding that needs to take a JSON file as a
>> command line argument. I'd prefer not to Script::Run() it directly,
>> for the usual reason folks don't want to eval() json. Is there a
>> native API for JSON.parse()?
> You may want to check out the list of implementations near the bottom of the
> page at:
> http://json.org/ > the only one of those i've used is jsoncpp, which is really simple to use
> but also has a few incompatibilities with JS/JSON which might annoy or
> hinder certain users (e.g. properties are stored in lexical sort order,
> instead of their insertion order, and the default value for a JS var is null
> instead of undefined (a value the framework doesn't account for at all)).
> --
> ----- stephan beal
> http://wanderinghorse.net/home/stephan/
On Thu, Apr 29, 2010 at 1:30 AM, Robert Ginda <rgi...@chromium.org> wrote:
> Thanks for the quick reply, but I was hoping to use v8's native parser.
> I imagine worst-case I can get a reference to the context's JSON.parse
> function and Function::Call() it, which I'd prefer over adding another
> dependency.
The v8 impl appears to be in parser.cc, as part of the Parser class. It's
not in the public API, so if you wanted to use it you'd have to declare the
internal types in your code (or import the v8-private headers) and then pray
that future changes to v8 do not invalidate the hackery.
On second thought - the internals you'd need from parser.cc are not declared
in parser.h, and appear to be private to that file... so good luck!
On Wed, Apr 28, 2010 at 4:17 PM, Robert Ginda <rgi...@chromium.org> wrote:
> I'm working on a v8 embedding that needs to take a JSON file as a
> command line argument. I'd prefer not to Script::Run() it directly,
> for the usual reason folks don't want to eval() json. Is there a
> native API for JSON.parse()?