views:

670

answers:

2

it appears if you have something like

var my_var = {"foo" : "bar"};

in javascript (with firefox at least) and post it to a php server you will receive a string like

{foo:"bar",}

on the server side. But json_decode in php doesn't like the trailing ',' or the lack or quotes around 'foo'. Is there a nice way to clean up the received json string?

The json object is sent with the drupal module json services.

EDIT: This question can be closed. The badly formed json is due to badly written js in the drupal module

+1  A: 

What code are you using to POST the data? Make sure you're using something like json2.js.

John Millikin
I should check. I'm using drupal's json_service modulue.
Steven Noble
Ah, this seems to be the crux of the problem. A badly written json encoder
Steven Noble
A: 

This would be a good way to handle JSON where you can't predict whether there's extraneous commas:

function json_decode_($json_string) {
    $json_string = preg_replace('/,(\s*)}/s', '$1}', $json_string);
    return json_decode($json_string);
}

Note, this is untested, but I think it should work.

eyelidlessness