I am generating json from an array using json_encode()
, it's working properly, but it uses the key:value from the array, as usual. but I want to change the name of the key only in the json output.. is it possible to do it ? or should I prepare the json key:values myself manually ?
Example:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
O/P
{"a":1,"b":2,"c":3,"d":4,"e":5}
I want .
{"foo":1,"something":2,"bar":3,"foo":4,"baz":5}
edit : I cannot edit the original array..( generated using framweork)
Only if you rewrite 'm yourself. You could use:
Not sure if that's what you were aiming for.
This may be a short answer:
You can always
json_decode
it and then re-encode it. But it's going to be easiest if you simply prepare your keys before you encode it.There is another option I described here. The main idea is to consider JSON as a string and then use str_replace or preg_replace(str_replace for regexp).
There is a code for your case.