0

How to decode this string into normal PHP Array?

$json ='{
    "rezultatas": "[\r\n    {\r\n        \"laikas\": \"2017-06-15 09:40:00\",\r\n        \"komentaras\": \"pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)\\t\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293965,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    },\r\n    {\r\n        \"laikas\": \"2017-06-22 09:20:00\",\r\n        \"komentaras\": \"pirminė konsultacija,sergantiems diabetu (turėti gliukomatį ir dienyną)\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293968,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    },\r\n    {\r\n        \"laikas\": \"2017-06-22 09:40:00\",\r\n        \"komentaras\": \"pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)\\t\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293969,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    }\r\n]",
    "klaida": null
}';

$result = json_decode($json, true);

print_r($result['rezultatas']);
5
  • There seems to be a problem with the \\t sequence in your inner JSON (appears twice). Commented May 23, 2017 at 17:53
  • where does $json['rezultatas'] come from? Commented May 23, 2017 at 18:02
  • I think @Tom is right, it's a parsing issue. Fwiw, json_decode() isn't perfect... Maybe something like this will help? stackoverflow.com/questions/1048487/… Commented May 23, 2017 at 18:09
  • I fetch it from website with file gets content. I want convert it to standart array and do another action with php. Commented May 23, 2017 at 18:11
  • Now works for sure. Thanks! Commented May 23, 2017 at 18:17

1 Answer 1

2

1) You decode the outer part of your JSON string but the inner part (rezultatas) also needs to be decoded.
2) It appears that the tab escape, \t, causes some problems while decoding your JSON.

You should strip the \t sequence in your JSON string before decoding:

<?php
$json ='{
    "rezultatas": "[\r\n    {\r\n        \"laikas\": \"2017-06-15 09:40:00\",\r\n        \"komentaras\": \"pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)\\t\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293965,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    },\r\n    {\r\n        \"laikas\": \"2017-06-22 09:20:00\",\r\n        \"komentaras\": \"pirminė konsultacija,sergantiems diabetu (turėti gliukomatį ir dienyną)\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293968,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    },\r\n    {\r\n        \"laikas\": \"2017-06-22 09:40:00\",\r\n        \"komentaras\": \"pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)\\t\",\r\n        \"savaitesDiena\": 5,\r\n        \"id\": 47293969,\r\n        \"kabinetas\": \"147\",\r\n        \"istPavadinimas\": \"Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos\",\r\n        \"specialybe\": \"ENDOKRINOLOGAS\",\r\n        \"gydytojas\": \"STASIŪNAS TADAS\",\r\n        \"pareigybe\": \"GYDYTOJAS ENDOKRINOLOGAS\",\r\n        \"kabPav\": \"Endokrinologijos ambulatorija\",\r\n        \"redaguoja\": 0\r\n    }\r\n]",
    "klaida": null
}';

$json = str_replace('\t', '', $json); // strip '\t' from your JSON
$result = json_decode($json, true); // decode outer part

print_r(json_decode($result['rezultatas'],true)); // decode inner part
?>

which outputs:

Array
(
    [0] => Array
        (
            [laikas] => 2017-06-15 09:40:00
            [komentaras] => pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)
            [savaitesDiena] => 5
            [id] => 47293965
            [kabinetas] => 147
            [istPavadinimas] => Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos
            [specialybe] => ENDOKRINOLOGAS
            [gydytojas] => STASIŪNAS TADAS
            [pareigybe] => GYDYTOJAS ENDOKRINOLOGAS
            [kabPav] => Endokrinologijos ambulatorija
            [redaguoja] => 0
        )

    [1] => Array
        (
            [laikas] => 2017-06-22 09:20:00
            [komentaras] => pirminė konsultacija,sergantiems diabetu (turėti gliukomatį ir dienyną)
            [savaitesDiena] => 5
            [id] => 47293968
            [kabinetas] => 147
            [istPavadinimas] => Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos
            [specialybe] => ENDOKRINOLOGAS
            [gydytojas] => STASIŪNAS TADAS
            [pareigybe] => GYDYTOJAS ENDOKRINOLOGAS
            [kabPav] => Endokrinologijos ambulatorija
            [redaguoja] => 0
        )

    [2] => Array
        (
            [laikas] => 2017-06-22 09:40:00
            [komentaras] => pirminė konsultacija sergantiems diabetu (turėti gliukomatį ir dienyną)
            [savaitesDiena] => 5
            [id] => 47293969
            [kabinetas] => 147
            [istPavadinimas] => Lietuvos sveikatos mokslų universiteto ligoninė Kauno klinikos
            [specialybe] => ENDOKRINOLOGAS
            [gydytojas] => STASIŪNAS TADAS
            [pareigybe] => GYDYTOJAS ENDOKRINOLOGAS
            [kabPav] => Endokrinologijos ambulatorija
            [redaguoja] => 0
        )

)

Check for https://3v4l.org/kja5S the output.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.