Gfellha
Gfellha

Reputation: 109

Why is \r\n appearing when I JSON encode an array

I'm creating some arrays and turning them into JSON strings and I noticed something strange--some of the strings, when I JSON encode them, are getting \r\n added onto the front and end of the of the strings. The strings I'm encoding are pulled from HTML elements.

$arr = array(
    'licStat' => $rows2[13]->nodeValue, 
    'expDate' => dateReplace($data[5]->nodeValue), 
    'dicAct' => $rows2[11]->nodeValue
);
echo json_encode($arr);

Expected output:

{"licStat":"Expired","expDate":"1999-12-20","dicAct":"Yes"}

Actual output:

{"licStat":"\r\n Expired\r\n ","expDate":"1999-12-20","dicAct":"\r\n Yes\r\n "}

Upvotes: 2

Views: 742

Answers (1)

jeprubio
jeprubio

Reputation: 18002

It seems $rows2[13]->nodeValue and $rows2[11]->nodeValue have carry return and line feeds in them.

You can use trim() to get rid of them:

$arr = array(
    'licStat' => trim($rows2[13]->nodeValue), 
    'expDate' => dateReplace($data[5]->nodeValue), 
    'dicAct' => trim($rows2[11]->nodeValue)
);
echo json_encode($arr);

Upvotes: 3

Related Questions