Re: json_encode confusion

From: Date: Thu, 10 Nov 2011 17:24:06 +0000
Subject: Re: json_encode confusion
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-315628@lists.php.net to get a copy of this message
On Thu, Nov 10, 2011 at 5:42 PM, Jim Lucas <lists@cmsws.com> wrote: > On 11/10/2011 6:45 AM, Bastien Koert wrote: >> Morning all, >> >> I've been having some fun with converting a text data file import into >> a json object for storage. >> >> I have a text file that is pipe delimited coming in via an upload. The >> first row is the headers and the second row is the data. >> >> Using this code: >> >> $data = file("inline_Nov_8_2011.txt"); >> >> if(count($data)==2){ >> >>       $keys   = explode("|", $data[0]); >>       $fields = explode("|", $data[1]); >> >>       $combine = array_combine($keys, $fields); >> >>       $json = json_encode($combine); >> } >> >> After the combine, I get an array that looks like this >> >> Array >> ( >>     ['Legal Last Name '] => Andros >>     ['Legal Middle Initial '] => >>     ['Legal First Name '] => Marisa >>     ['Maiden/Other Name '] => >>     ['Social Insurance No. '] => 123456789 >>     ['Date of Birth '] => 2/1/1988 >>     ['Gender '] => Female >> ) >> >> But the json encoded value looks like this (there are way more >> elements but this should be enough to represent what I need to do). >> >> >> {null:"Andros",null:"",null:"Marisa",null:"",null:"123456789",null:"2\/1\/1988",null:"Female"} >> >> I have been googling for info about allowed values for the json keys, >> but can't seem to find a clear doc on what is allowed and what isn't. >> I have tried unquoted keys, replaced the spaced with underscores but >> nothing I do seems to help. >> >> When I echo out the json encoded data, the keys are all nulls. >> >> Can someone point me in the correct direction? It may be that I need >> to manually create the key names as an array first, which I was hoping >> to avoid since the file format coming from the client is still in some >> flux. >> > > Looking at your input array example, I see that you have trailing spaces in your > keys.  Looking at the working example of DiRaven, the only difference that I see > with his example is that the input key values do not have a trailing spaces. > json is probably having an issue with that trailing spaces. > That might be a possibility, but I suspect that the single quotes around the keys might be a problem. I haven't tried it though. Matijn

« previous php.general (#315628) next »