Sorry, this is my code:
// utility.c
void tesJson(char *text) {
json_t *root;
size_t i;
json_error_t error;
root = json_loads(text, 0, &error);
free(text);
for(i = 0; i < json_array_size(root); i++) {
json_t *data;
data = json_array_get(root, i);
printf("%s\n", json_string_value(data));
}
}
//learn.js
var utility = ffi.Library('utility', {
'tesJson': ['void', ['pointer']]
});
var obj = {'1': 'one', '2': 'two'};
utility.tesJson(JSON.stringify(obj));
On Thursday, July 3, 2014 4:52:56 AM UTC+7, ryandesign wrote:
>
>
> On Jul 1, 2014, at 10:18 PM, Muhammad S Maromi wrote:
>
> > I tried the "straightforward" way, but it produces this error:
> >
> > $ node learn.js
> >
> /Users/msmaromi/learnnode/trenupp/node_modules/ffi/lib/_foreign_function.js:55
>
>
> > throw e
> > ^
> > TypeError: error setting argument 0 - writePointer: Buffer instance
> expected as third argument
> > at Object.writePointer
> (/Users/msmaromi/learnnode/trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:740:11)
>
>
> > at Object.set
> (/Users/msmaromi/learnnode/trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:482:13)
>
>
> > at Object.alloc
> (/Users/msmaromi/learnnode/trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:514:13)
>
>
> > at Object.ForeignFunction.proxy [as tesJson]
> (/Users/msmaromi/learnnode/trenupp/node_modules/ffi/lib/_foreign_function.js:50:22)
>
>
> > at Object.<anonymous>
> (/Users/msmaromi/learnnode/trenupp/learn.js:18:9)
> > at Module._compile (module.js:456:26)
> > at Object.Module._extensions..js (module.js:474:10)
> > at Module.load (module.js:356:32)
> > at Function.Module._load (module.js:312:12)
> > at Function.Module.runMain (module.js:497:10)
>
> What do you mean exactly when you say "json object"? Do you mean a
> JavaScript object like this:
>
>
> var o = {foo: 5};
>
>
> Or do you mean a string representation of that object in JavaScript object
> notation (JSON) like this:
>
>
> var j = '{foo: 5}';
>
>
> For the latter, I would think you could pass the buffer representation of
> the string j to an ffi function. That function would need to know how to
> decode JSON-formatted strings.
>
> For the former, you would need to convert o to JSON first (e.g. using
> JSON.stringify(o)).
>
>
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/fd0bdb6a-5816-443c-8f2f-c26573b08b91%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.