如何将此字符串解码为普通的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
}';
$result = json_decode($json, true);
print_r($result['rezultatas']);
答案 0 :(得分:2)
1)您解码JSON字符串的外部部分,但内部部分(rezultatas
)也需要解码。
2)似乎选项卡转义符\t
在解码JSON时会导致一些问题。
您应该在解码前删除JSON字符串中的\t
序列:
<?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
?>
输出:
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
)
)