json_encode/json_decode, take 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The string used below in "$myArrEncoded" is generated in javascript, after
creating the structure and spitting out:

var JSONVar = javascriptVar.toSource();

I can eval JSONVar and work with it as I would be working with the original
javascriptVar so I know the transition back and forth from a structure to a
string isn't causing problems.  The problem is when I try to work with the
string in PHP.

Here is my code:

<?php

  $myArrEncoded = "({Salary:{'50-70K':{filterType:&quot;range&quot;,
fieldName:&quot;SALARY&quot;, fieldValueLabel:&quot;50-70K&quot;,
lowerValue:&quot;50&quot;, upperValue:&quot;70&quot;,
inclusive:&quot;BOTH&quot;}},
Position:{Developer:{filterType:&quot;single&quot;,
fieldName:&quot;POSITION&quot;, fieldValueLabel:&quot;Developer&quot;,
fieldValue:&quot;Developer&quot;, constraint:&quot;equals&quot;},
SysAdmin:{filterType:&quot;single&quot;, fieldName:&quot;POSITION&quot;,
fieldValueLabel:&quot;System Admin&quot;, fieldValue:&quot;SysAdmin&quot;,
constraint:&quot;equals&quot;}}, 'Required Action':{'2 -
GenScreen':{filterType:&quot;single&quot;,
fieldName:&quot;REQUIRED_ACTION&quot;, fieldValueLabel:&quot;General Phone
Screen&quot;, fieldValue:&quot;2 - GenScreen&quot;,
constraint:&quot;equals&quot;}}})";

  echo var_dump( $myArrEncoded ) . '<br><br>';
  echo '$myArr encoded: ' . $myArrEncoded . '<br><br>';
  try {
    echo '$myArr decoded: <pre>' . print_r( json_decode( $myArrEncoded, TRUE
), TRUE ) . '</pre><br><br>';
  } catch( Exception $e ) {
    echo 'Error: ' . var_dump( $e );
  }

?>

When I run it, I get the following output:

--------------------------------------------------------------------------------

string(587) "({Salary:{'50-70K':{filterType:"range",
fieldName:"SALARY", fieldValueLabel:"50-70K", lowerValue:"50",
upperValue:"70", inclusive:"BOTH"}},
Position:{Developer:{filterType:"single", fieldName:"POSITION",
fieldValueLabel:"Developer", fieldValue:"Developer",
constraint:"equals"}, SysAdmin:{filterType:"single",
fieldName:"POSITION", fieldValueLabel:"System Admin",
fieldValue:"SysAdmin", constraint:"equals"}}, 'Required Action':{'2 -
GenScreen':{filterType:"single", fieldName:"REQUIRED_ACTION",
fieldValueLabel:"General Phone Screen", fieldValue:"2 - GenScreen",
constraint:"equals"}}})"

$myArr encoded: ({Salary:{'50-70K':{filterType:"range",
fieldName:"SALARY", fieldValueLabel:"50-70K", lowerValue:"50",
upperValue:"70", inclusive:"BOTH"}},
Position:{Developer:{filterType:"single", fieldName:"POSITION",
fieldValueLabel:"Developer", fieldValue:"Developer",
constraint:"equals"}, SysAdmin:{filterType:"single",
fieldName:"POSITION", fieldValueLabel:"System Admin",
fieldValue:"SysAdmin", constraint:"equals"}}, 'Required Action':{'2 -
GenScreen':{filterType:"single", fieldName:"REQUIRED_ACTION",
fieldValueLabel:"General Phone Screen", fieldValue:"2 - GenScreen",
constraint:"equals"}}})

$myArr decoded: ({Salary:{'50-70K':{filterType:"range",
fieldName:"SALARY", fieldValueLabel:"50-70K", lowerValue:"50",
upperValue:"70", inclusive:"BOTH"}},
Position:{Developer:{filterType:"single", fieldName:"POSITION",
fieldValueLabel:"Developer", fieldValue:"Developer",
constraint:"equals"}, SysAdmin:{filterType:"single",
fieldName:"POSITION", fieldValueLabel:"System Admin",
fieldValue:"SysAdmin", constraint:"equals"}}, 'Required Action':{'2 -
GenScreen':{filterType:"single", fieldName:"REQUIRED_ACTION",
fieldValueLabel:"General Phone Screen", fieldValue:"2 - GenScreen",
constraint:"equals"}}})

--------------------------------------------------------------------------------

Why isn't json_decode() converting the string to an array?  Is there
something extra in there that json_decode() can't deal with?  I can work
with it fine in javascript... :(

thnx,
Christoph

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux