views:

171

answers:

5

I've written a CMS which uses the PHP function json_encode to send some data back via an Ajax Request.

Unfortunately, I'm trying to load it onto a server which is running PHP version 5.1, the json_encode PHP function is not available on versions of PHP before 5.2.0.

Does anyone know of a way to encode a PH array as JSON without using the inbuilt json_encode function?

EDIT

I've used Pekka's function, but now I find JQuery won't parse the result as expected. Even though Firebug shows JSON being passed back through. My firebug window looks like this:alt text

and my jquery looks like this:

`                $.ajax({
                                type: "GET",
                                url: "includes/function/add_users.php",
                                data: str,
                                dataType: 'json',
                                cache: false,
                                beforeSend: function(html)
                                {
                                $('#editbox').html('<img class="preloader" src="images/ajax-loader.gif"/>');

                                },

                                success: function(html){

                                fields = html;

                                    $('#div1').html(fields['username']);
$('#div2').html(fields['fname']);`

But the divs : #div1 and #div2 will not load the correct data.

FOR WHY?

A: 

I hit up the google... This person has made a encoder of their own:

http://www.post-hipster.com/2008/02/15/elegant-little-php-json-encoder/

Bob Fincheimer
+1  A: 

You can use the PECL extension.

Artefacto
A: 

Here, for older versions.

Ignacio Vazquez-Abrams
+3  A: 

The User Contributed Notes to json_encode have a number of implementations. On a cursory glance, this one looks the best to me.

If you have access to PECL, I would use the extension as @Artefacto recommends.

Pekka
ok i'm testing it...
Ashley Ward
OK that works fine - firebug shows JSON being passed. However Jquery doesn't like it...
Ashley Ward
@Ashley maybe show some example JSON...
Pekka
Ok - see the extended question above
Ashley Ward
@Ashley you will need to show some actual JSON so we can tell what's wrong with it. Alternatively, @Mark Baker's suggestion looks interesting as well.
Pekka
@Ashley isn't the JSON result an Object? Meaning you need to use `fields.username`?
Pekka