json_decode() returns string type?

json_decode() returns string type?

am 24.08.2007 19:35:34 von Mike

Hi,

I'm passing a JSON-encoded string to json_decode() and am expecting
its output to be an object type, but am getting a string type instead.
How can I return an object?

In the docs, the following returns an object:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));

However, if I json_encode() the string first and then call
json_decode(), the output is a string and not an object:

$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));

This is just a simplified example--in practice what I'm doing is
pushing a JSON-encoded string to PHP via AJAX (or at least "AJ" ;).
However it does illustrate the problem of converting this encoded JSON
string to an object I can read in PHP (e.g., "$json->a").

How can I return an object type?

Thanks!

Re: json_decode() returns string type?

am 24.08.2007 20:12:16 von Jerry Stuckle

Mike wrote:
> Hi,
>
> I'm passing a JSON-encoded string to json_decode() and am expecting
> its output to be an object type, but am getting a string type instead.
> How can I return an object?
>
> In the docs, the following returns an object:
>
> $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
> var_dump(json_decode($json));
>
> However, if I json_encode() the string first and then call
> json_decode(), the output is a string and not an object:
>
> $json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
> var_dump(json_decode($json));
>
> This is just a simplified example--in practice what I'm doing is
> pushing a JSON-encoded string to PHP via AJAX (or at least "AJ" ;).
> However it does illustrate the problem of converting this encoded JSON
> string to an object I can read in PHP (e.g., "$json->a").
>
> How can I return an object type?
>
> Thanks!
>

It's already a json-encoded string. Why are you encoding it again?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================