• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Entity JSON encode and manually decode

#1
In entity
Code:
protected $casts = [
    'courses'        => 'array',
    'courses_object' => 'json',
    'courses_array'  => 'json-array',
];
The posted array
Code:
courses = array{"bsc-bio", "bsc-bed", "bca"}
It inserted in database as
Code:
"a:3:{i:0;s:7:"bsc-bio";i:1;s:7:"bsc-bed";i:2;s:3:"bca";}"
How to manually decode it?
Code:
json_decode('a:3:{i:0;s:7:"bsc-bio";i:1;s:7:"bsc-bed";i:2;s:3:"bca";}')
json_decode() returns NULL.
Reply

#2
That's not in json format, that's encoded with serialize(). You need to use unserialize() to decode it back to an array.
CodeIgniter 4 tutorials (EN/FR) - https://includebeer.com
Reply

#3
(04-18-2021, 09:15 AM)includebeer Wrote: That's not in json format, that's encoded with serialize(). You need to use unserialize() to decode it back to an array.
Got it! Thanks.
The unserialize() worked perfectly.
But I am having following code in my Entity...
PHP Code:
protected $casts = [
    
'courses'        => 'array',
    
'courses_object' => 'json',
    
'courses_array'  => 'json-array',
]; 
The CodeIgniter is using word 'json' here? Exclamation
Reply

#4
I don't know, I never used this feature. But 'courses' is cast to 'array', not 'json', maybe that's why it's serialized and not encoded in json?
CodeIgniter 4 tutorials (EN/FR) - https://includebeer.com
Reply

#5
A PHP json_encode array conversion example

PHP | json_encode() Function
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.