Please take a look at the following code and tell me what I'm doing wrong here. I'm just not understanding why this isn't working: <?php $myArr = array( 'Key 1' => array( 'Key 1 1' => array( array( 'Key 1 1 1' => 'Value' ), array( 'Key 1 1 2' => 'Value' )), 'Key 1 2' => array( array( 'Key 1 2 1' => 'Value' ), array( 'Key 1 2 2' => 'Value' ))), 'Key 2' => array( 'Key 2 1' => array( array( 'Key 2 1 1' => 'Value' ), array( 'Key 2 1 2' => 'Value' )), 'Key 2 2' => array( array( 'Key 2 2 1' => 'Value' ), array( 'Key 2 2 2' => 'Value' )))); echo '$myArr: <pre>' . print_r( $myArr, TRUE ) . '</pre><br>'; $myArrEncoded = json_encode( $myArr ); echo var_dump( $myArrEncoded ) . '<br><br>'; echo '$myArr encoded: ' . $myArrEncoded . '<br><br>'; try { echo '$myArr decoded: <pre>' . json_decode( $myArrEncoded ) . '</pre><br><br>'; // this is line 16 } catch( Exception $e ) { echo 'Error: ' . var_dump( $e ); } ?> When I run the above, I get the following. Please note that line 16 is in a TRY block yet it still gives the error seen below: $myArr: Array ( [Key 1] => Array ( [Key 1 1] => Array ( [0] => Array ( [Key 1 1 1] => Value ) [1] => Array ( [Key 1 1 2] => Value ) ) [Key 1 2] => Array ( [0] => Array ( [Key 1 2 1] => Value ) [1] => Array ( [Key 1 2 2] => Value ) ) ) [Key 2] => Array ( [Key 2 1] => Array ( [0] => Array ( [Key 2 1 1] => Value ) [1] => Array ( [Key 2 1 2] => Value ) ) [Key 2 2] => Array ( [0] => Array ( [Key 2 2 1] => Value ) [1] => Array ( [Key 2 2 2] => Value ) ) ) ) string(245) "{"Key 1":{"Key 1 1":[{"Key 1 1 1":"Value"},{"Key 1 1 2":"Value"}],"Key 1 2":[{"Key 1 2 1":"Value"},{"Key 1 2 2":"Value"}]},"Key 2":{"Key 2 1":[{"Key 2 1 1":"Value"},{"Key 2 1 2":"Value"}],"Key 2 2":[{"Key 2 2 1":"Value"},{"Key 2 2 2":"Value"}]}}" $myArr encoded: {"Key 1":{"Key 1 1":[{"Key 1 1 1":"Value"},{"Key 1 1 2":"Value"}],"Key 1 2":[{"Key 1 2 1":"Value"},{"Key 1 2 2":"Value"}]},"Key 2":{"Key 2 1":[{"Key 2 1 1":"Value"},{"Key 2 1 2":"Value"}],"Key 2 2":[{"Key 2 2 1":"Value"},{"Key 2 2 2":"Value"}]}} *Catchable fatal error*: Object of class stdClass could not be converted to string in */path/to/my/file.php* on line *16 *Now, if I change it so that I pass the second parameter as TRUE for json_decode (ie, change my code as follows: echo '$myArr decoded: <pre>' . json_decode( $myArrEncoded, TRUE ) . '</pre><br><br>'; // this is line 16 ), then here is what I get: $myArr: Array ( [Key 1] => Array ( [Key 1 1] => Array ( [0] => Array ( [Key 1 1 1] => Value ) [1] => Array ( [Key 1 1 2] => Value ) ) [Key 1 2] => Array ( [0] => Array ( [Key 1 2 1] => Value ) [1] => Array ( [Key 1 2 2] => Value ) ) ) [Key 2] => Array ( [Key 2 1] => Array ( [0] => Array ( [Key 2 1 1] => Value ) [1] => Array ( [Key 2 1 2] => Value ) ) [Key 2 2] => Array ( [0] => Array ( [Key 2 2 1] => Value ) [1] => Array ( [Key 2 2 2] => Value ) ) ) ) string(245) "{"Key 1":{"Key 1 1":[{"Key 1 1 1":"Value"},{"Key 1 1 2":"Value"}],"Key 1 2":[{"Key 1 2 1":"Value"},{"Key 1 2 2":"Value"}]},"Key 2":{"Key 2 1":[{"Key 2 1 1":"Value"},{"Key 2 1 2":"Value"}],"Key 2 2":[{"Key 2 2 1":"Value"},{"Key 2 2 2":"Value"}]}}" $myArr encoded: {"Key 1":{"Key 1 1":[{"Key 1 1 1":"Value"},{"Key 1 1 2":"Value"}],"Key 1 2":[{"Key 1 2 1":"Value"},{"Key 1 2 2":"Value"}]},"Key 2":{"Key 2 1":[{"Key 2 1 1":"Value"},{"Key 2 1 2":"Value"}],"Key 2 2":[{"Key 2 2 1":"Value"},{"Key 2 2 2":"Value"}]}} $myArr decoded: Array What's going on here? Why isn't json_decode() properly decoding my string? Is there something more I need to do? Any help would be greatly appreciated! thnx, Christoph **