Re: json_encode confusion
| From: | Matijn Woudt | 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