This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.
Closed 9 years ago.
I have this JSON file:
http://www.jeewanaryal.com/angryQuiz/eighties/json/eighties.json
and I am trying to decode it in PHP as follows:
$json = file_get_contents('http://www.jeewanaryal.com/angryQuiz/eighties/json/eighties.json');
$data = json_decode($json);
var_dump($data);
But, the output I am getting is NULL. Am I missing anything?
Using example from PHP.NET json_last_error() I found that your json syntax is not correct:
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
Output:
- Syntax error, malformed JSON
However, I checked your json code in the following website but it says valid:
http://www.freeformatter.com/json-validator.html
http://jsonlint.com/
http://json.parser.online.fr/
http://jsonformatter.curiousconcept.com/
Documentation
json_decode can return NULL as the documentation states.
Returns the value encoded in json in appropriate PHP type. Values
true, false and null (case-insensitive) are returned as TRUE, FALSE
and NULL respectively. NULL is returned if the json cannot be decoded
or if the encoded data is deeper than the recursion limit.
Your Problem
json_decode is failing here because of \n inside of id 6
{ "id": 6, "url":
"http://jeewanaryal.com/angryQuiz/eighties/images/betterOffDead.jpg",
"question": "In the movie 'Better Off Dead', what was the \n name of
Lane's younger brother?", "answer": [ { "a": { "text": "Bradger",
"status": 1 } }, { "b": { "text": "Peter", "status": 0 } }, { "c": {
"text": "Frank", "status": 0 } }, { "d": { "text": "Michael",
"status": 0 } } ] }
Solution
I guess your best bet here is to escape them before json_decode
$safe_json = str_replace("\n", "\\n", $json);
Please set the second parameter to true. This will give you an associative array. If the result is still null I'd be interested whether the file_get_contents returned something.
This is just a guess, but as you do not show what $json contains, I am going to assume that file_get_contents returned false, leading to the result you get.
You should check your php.ini file, what is the value for allow_url_fopen? If that is 0 that means that you cannot read a file from an http address so that could be the problem.
Just change the value of allow_url_fopen to 1 if that is the problem.
Related
I am trying to use PHP's json_decode function to get data from the database (phpmyadmin)(the type is set to text) and set it on the page This is the code that i got:
$belangrijkespecs = $productClass->get('belangrijkeSpecs');
$belangrijkespecs = json_decode($belangrijkespecs);
var_dump($belangrijkespecs);
This code outputs
NULL
And when I echo the $productClass->get('belangrijkeSpecs') it outputs:
{"Beeldschermdiagonaal":"10,1 inch (25,7 cm)","Beeldresolutie":"1920 x 1200","Batterijduur":"Tot 12 uur","Gewicht":"525 g","Opslag":"32 GB"}
When I passed this in an online JSON decode website than I get the right array (from the website https://3v4l.org/IHKZZ):
array (
'Beeldschermdiagonaal' => '10,1 inch (25,7 cm)',
'Beeldresolutie' => '1920 x 1200',
'Batterijduur' => 'Tot 12 uur',
'Gewicht' => '525 g',
'Opslag' => '32 GB',
)
When i try json_last_error() with this code:
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
It outputs
- Syntax error, malformed JSON
And if i just use echo json_last_error() it outputs : 4.
i have already tried :
$belangrijkespecs = str_replace("/", "", $belangrijkespecs);
and
$belangrijkespecs = rtrim($belangrijkespecs, "\0");
and
$belangrijkespecs = stripslashes($belangrijkespecs);
the output of var_dump $productClass->get('belangrijkeSpecs') :
string(240) "{"Beeldschermdiagonaal":"10,1 inch (25,7 cm)","Beeldresolutie":"1920 x 1200","Batterijduur":"Tot 12 uur","Gewicht":"525 g","Opslag":"32 GB"
The output of echo addcslashes($belangrijkespecs, '\0..\37!#\177..\377') is:
{"\;\Beeldschermdiagonaal"\;\:"\;\1\0,\1 inch (\2\5,\7 cm)"\;,"\;\Beeldresolutie"\;\:"\;\1\9\2\0 x \1\2\0\0"\;,"\;\Batterijduur"\;\:"\;\Tot \1\2 uur"\;,"\;\Gewicht"\;\:"\;\5\2\5 g"\;,"\;\Opslag"\;\:"\;\3\2 \G\B"\;}
And when i do
$belangrijkespecs = stripslashes($belangrijkespecs); before json_decode it still dosnt work...
Also tried:
$belangrijkespecs = preg_replace('/\\\\/', '', $belangrijkespecs);
But it did not work.
The structure of this 'belangrijkeSpecs' = http://prntscr.com/lvnsbh
I have looked on the internet but the answers that were given did not help me.
So my question is:
How can i get a array from the json encoded string
( $productClass->get('belangrijkeSpecs') )
and I expect an array as a return from the json_decode();
The awnser was that i escaped the string before i did the json_decode. And because i did that there where a lot of backslashes.
Thanks to #Matthijs i found it
Welp, I see quite a few hits on this, but none seem to answer my question.
I have a REST method that returns this JSON:
This is the exact string in the $result variable, below:
{"people":{"people":{"new_user":{"id":7,"name":"Marvin","lang":"en","read_token":1,"write_token":11,"last_access":"2018-06-17 17:00:02","writeable":true,"surname":"Martian","middle_name":"D","given_name":"Marvin","nickname":"Angry Little Fella","payload":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0ic3ZnMjczMzMiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTU2LjggMjE5LjMiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTU2LjggMjE5LjM7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZFODZFO30KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMjMxRjIwO3N0cm9rZS13aWR0aDoxLjI1O30KCS5zdDJ7ZmlsbDojRThBRTEwO30KCS5zdDN7ZmlsbDojNTlBRDQwO30KCS5zdDR7ZmlsbDojMjMxRjIwO30KCS5zdDV7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGcgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQwLjIwOTM3LC0xMTIuNzAzNzcpIj4KCTxnIGlkPSJnMjcxMTQiIHRyYW5zZm9ybT0ibWF0cml4KDIuNjQ4NDAxNCwwLDAsMi42NDg0MDE0LDEyNjIuNDMzMSwtMTMwNi45NTEzKSI+CgkJPHBhdGggaWQ9InBhdGgxMDA0MCIgY2xhc3M9InN0MCIgZD0iTS01NjQuNyw1NTEuNGMwLjEsMCwyLjItNy4zLDMuMy05YzAsMC0xLjMtMC43LTIuMy0xYzAsMCwwLjMtMC43LDAuNC0xYzAsMC0xLjEtMC43LTIuOC0xCgkJCWMwLDAsMC4yLTAuOSwwLjMtMS4xYzAsMC00LjItMS42LTguMy0xYzAsMCwwLTAuNSwwLTAuN2MwLDAtNS41LTEuMS05LjUsMS4zYzAsMCwwLjEsMC43LDAuMSwwLjljMCwwLTEuMywwLjItMi4zLDAuNgoJCQljMCwwLTAuMS0wLjMtMC4yLTAuNmMwLDAtMy44LDEuNi01LDQuNmMwLDAsMiwzLjksMyw4Qy01ODgsNTUxLjYtNTY5LDU1Mi01NjQuNyw1NTEuNCIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNDQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTY0LjcsNTUxLjRjMC4xLDAsMi4yLTcuMywzLjMtOWMwLDAtMS4zLTAuNy0yLjMtMWMwLDAsMC4zLTAuNywwLjQtMWMwLDAtMS4xLTAuNy0yLjgtMQoJCQljMCwwLDAuMi0wLjksMC4zLTEuMWMwLDAtNC4yLTEuNi04LjMtMWMwLDAsMC0wLjUsMC0wLjdjMCwwLTUuNS0xLjEtOS41LDEuM2MwLDAsMC4xLDAuNywwLjEsMC45YzAsMC0xLjMsMC4yLTIuMywwLjYKCQkJYzAsMC0wLjEtMC4zLTAuMi0wLjZjMCwwLTMuOCwxLjYtNSw0LjZjMCwwLDIsMy45LDMsOEMtNTg4LDU1MS42LTU2OSw1NTItNTY0LjcsNTUxLjRMLTU2NC43LDU1MS40eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNDgiIGNsYXNzPSJzdDIiIGQ9Ik0tNTY2LjQsNTYxLjZjMCwwLDIuNi01LjEsMy02LjNjMCwwLDAuNi0wLjksMC40LTNjMCwwLDAtMS0yLjctMS45YzAsMC0xMS40LTMuOC0yMi41LDAuMgoJCQljMCwwLTAuNywwLjItMS4yLDEuNGMwLDAtMC40LDAuOS0wLjcsMmMwLDAtMC4xLDAuNywwLjMsMS42YzAsMCwyLjIsNC4zLDQsNi42Qy01ODUuNyw1NjIuMS01NjkuNiw1NjMuNS01NjYuNCw1NjEuNiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNTIiIGNsYXNzPSJzdDEiIGQ9Ik0tNTY2LjQsNTYxLjZjMCwwLDIuNi01LjEsMy02LjNjMCwwLDAuNi0wLjksMC40LTNjMCwwLDAtMS0yLjctMS45YzAsMC0xMS40LTMuOC0yMi41LDAuMgoJCQljMCwwLTAuNywwLjItMS4yLDEuNGMwLDAtMC40LDAuOS0wLjcsMmMwLDAtMC4xLDAuNywwLjMsMS42YzAsMCwyLjIsNC4zLDQsNi42Qy01ODUuNyw1NjIuMS01NjkuNiw1NjMuNS01NjYuNCw1NjEuNgoJCQlMLTU2Ni40LDU2MS42eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNTYiIGNsYXNzPSJzdDIiIGQ9Ik0tNTczLjksNTYwLjRjMCwwLDAtMS43LDAtMi42YzAsMCwwLjEtMS41LTAuOS0xLjdjMCwwLTEuMy0wLjYtMi41LDAuMWMwLDAtMC43LDAuMy0wLjYsMS43CgkJCWMwLDAsMCwyLjMsMCwyLjhDLTU3Ny44LDU2MC42LTU3NC44LDU2MS41LTU3My45LDU2MC40Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA2MCIgY2xhc3M9InN0MSIgZD0iTS01NzMuOSw1NjAuNGMwLDAsMC0xLjcsMC0yLjZjMCwwLDAuMS0xLjUtMC45LTEuN2MwLDAtMS4zLTAuNi0yLjUsMC4xYzAsMC0wLjcsMC4zLTAuNiwxLjcKCQkJYzAsMCwwLDIuMywwLDIuOEMtNTc3LjgsNTYwLjYtNTc0LjgsNTYxLjUtNTczLjksNTYwLjRMLTU3My45LDU2MC40eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNjQiIGNsYXNzPSJzdDMiIGQ9Ik0tNTUwLjMsNTc1LjRjMCwwLTUuNy0xNi4xLTI2LjItMTUuOWMwLDAtMTktMC45LTI1LjYsMTguNgoJCQlDLTYwMi4xLDU3OC4yLTU3NCw1NjkuMi01NTAuMyw1NzUuNCIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNjgiIGNsYXNzPSJzdDEiIGQ9Ik0tNTUwLjMsNTc1LjRjMCwwLTUuNy0xNi4xLTI2LjItMTUuOWMwLDAtMTktMC45LTI1LjYsMTguNgoJCQlDLTYwMi4xLDU3OC4yLTU3NCw1NjkuMi01NTAuMyw1NzUuNHoiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDcyIiBjbGFzcz0ic3QzIiBkPSJNLTU1Mi42LDU5OS41YzAsMCw1LTAuNiw1LjYtMy4xYzAsMCwwLjQtMC41LDAuMS0xLjhjMCwwLDAuOC02LjYsMC4yLTEzLjJjMCwwLTAuNC0yLTIuMy00LjUKCQkJYzAsMC04LjctMTMuNy0yOC42LTEzYzAsMC0xNy44LDAtMjYuMSwxNi4yYzAsMC0wLjksMS4zLTAuOSwzLjhjMCwwLTAuMiw0LjQsMS4zLDExLjJjMCwwLTAuNywyLjUsMywzLjhjMCwwLDEuMSwwLjMsMS45LDAuNAoJCQljMCwwLDEuMiwwLjIsMi4xLDAuM2MwLDAsMS4yLDYuNi01LjksMTAuMmMwLDAsMy43LDYuNiw1LjUsOC44aDIuNWMwLDAsNS43LTUuMiwxMS03YzAsMCwxNS45LTMuOCwyMC41LTEuMmMwLDAsNC41LDUsNS44LDcuNwoJCQljMCwwLDEuNC0wLjEsMi40LTAuMWMwLDAsNS02LjQsNi44LTguNkMtNTQ3LjYsNjA5LjMtNTUyLjcsNjA2LjMtNTUyLjYsNTk5LjUiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDc2IiBjbGFzcz0ic3QxIiBkPSJNLTU1Mi42LDU5OS41YzAsMCw1LTAuNiw1LjYtMy4xYzAsMCwwLjQtMC41LDAuMS0xLjhjMCwwLDAuOC02LjYsMC4yLTEzLjJjMCwwLTAuNC0yLTIuMy00LjUKCQkJYzAsMC04LjctMTMuNy0yOC42LTEzYzAsMC0xNy44LDAtMjYuMSwxNi4yYzAsMC0wLjksMS4zLTAuOSwzLjhjMCwwLTAuMiw0LjQsMS4zLDExLjJjMCwwLTAuNywyLjUsMywzLjhjMCwwLDEuMSwwLjMsMS45LDAuNAoJCQljMCwwLDEuMiwwLjIsMi4xLDAuM2MwLDAsMS4yLDYuNi01LjksMTAuMmMwLDAsMy43LDYuNiw1LjUsOC44aDIuNWMwLDAsNS43LTUuMiwxMS03YzAsMCwxNS45LTMuOCwyMC41LTEuMmMwLDAsNC41LDUsNS44LDcuNwoJCQljMCwwLDEuNC0wLjEsMi40LTAuMWMwLDAsNS02LjQsNi44LTguNkMtNTQ3LjYsNjA5LjMtNTUyLjcsNjA2LjMtNTUyLjYsNTk5LjV6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA4MCIgY2xhc3M9InN0NCIgZD0iTS01NTIuNSw1OTAuOGMwLDAsMC40LDIyLjEtMjEuNywyMi45YzAsMC0yMi44LDItMjEuOC0yNS4zYzAsMCw0LjUtNi4xLDIwLjktNi44CgkJCUMtNTc1LjIsNTgxLjctNTYxLjIsNTgxLjEtNTUyLjUsNTkwLjgiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDg0IiBjbGFzcz0ic3QxIiBkPSJNLTU1Mi41LDU5MC44YzAsMCwwLjQsMjIuMS0yMS43LDIyLjljMCwwLTIyLjgsMi0yMS44LTI1LjNjMCwwLDQuNS02LjEsMjAuOS02LjgKCQkJQy01NzUuMiw1ODEuNy01NjEuMiw1ODEuMS01NTIuNSw1OTAuOEwtNTUyLjUsNTkwLjh6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA4OCIgY2xhc3M9InN0MSIgZD0iTS01NTIuNSw1OTAuOGMwLDAsMy4zLDMuOCwyLjcsNS4xYzAsMC0wLjQsMS4xLTIuNCwxLjMiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDkyIiBjbGFzcz0ic3QxIiBkPSJNLTU5Ni4xLDU4OC41YzAsMC0yLjIsMi4xLTMuNSw0LjdjMCwwLTEuMSwyLjEtMC4yLDMuMmMwLDAsMC42LDEuMSwzLjIsMS4yIi8+CgkJPHBhdGggaWQ9InBhdGgxMDA5NiIgY2xhc3M9InN0MSIgZD0iTS01OTguOSw1OTIuMWMwLDAsMi4yLDMsMi43LDcuNSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMDAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTk0LjMsNjAxLjNjMCwwLDAuMyw0LjgtNS4xLDguNGMwLDAsMy45LDYuNyw1LjIsOC45Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDEwNCIgY2xhc3M9InN0MSIgZD0iTS02MDIuMSw2MDkuOGMwLDAsMi4xLTAuMSwyLjgtMC4xIi8+CgkJPHBhdGggaWQ9InBhdGgxMDEwOCIgY2xhc3M9InN0MSIgZD0iTS02MDMuMiw1OTVjMCwwLDEuMS02LDguNS0xMC45YzAsMCw3LTUuNiwxOS42LTUuNWMwLDAsMTcuMi0wLjgsMjcsMTNjMCwwLDEuMiwxLjUsMS4zLDMuMSIKCQkJLz4KCQk8cGF0aCBpZD0icGF0aDEwMTEyIiBjbGFzcz0ic3QxIiBkPSJNLTU1NS4yLDYwMi4zYzAsMCwwLjksNC4xLDQuMSw2LjljMCwwLTQuNiw3LjEtNS43LDguNyIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMTYiIGNsYXNzPSJzdDEiIGQ9Ik0tNTQ3LjYsNjA5LjNjMCwwLTIuMy0wLjItMy40LTAuMiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMjAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTUyLjYsNTk5LjZjMCwwLDAuMy00LjYsMS41LTYuOSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMjQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTYzLjQsNTU1LjNjMCwwLTEuNi0zLjEtMTMuNC0zYzAsMC05LjksMC4zLTEzLjMsMi41Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDEyOCIgY2xhc3M9InN0NCIgZD0iTS01NjMuNyw1NDAuNWMwLDAtMS4yLDIuOS0xLjgsNC41YzAsMCwwLjktMS40LDEuOS0zLjNDLTU2My42LDU0MS43LTU2My42LDU0MC41LTU2My43LDU0MC41CgkJCSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMzIiIGNsYXNzPSJzdDQiIGQ9Ik0tNTY2LjQsNTM5LjNjLTAuMywxLTAuOCwyLjQtMS4zLDQuOGMwLjQtMC43LDAuNi0xLjIsMS43LTQuNAoJCQlDLTU2NS45LDUzOS43LTU2Ni4xLDUzOC40LTU2Ni40LDUzOS4zIi8+CgkJPHBhdGggaWQ9InBhdGgxMDEzNiIgY2xhc3M9InN0NCIgZD0iTS01NzQuNCw1MzdjLTAuMSwxLjEtMC4xLDMuOS0wLjEsNS4zYzAsMCwwLjQtMS4zLDAuNi00LjkKCQkJQy01NzMuOSw1MzcuNC01NzQuMiw1MzYuOS01NzQuNCw1MzciLz4KCQk8cGF0aCBpZD0icGF0aDEwMTQwIiBjbGFzcz0ic3Q0IiBkPSJNLTU4My4zLDUzOC4xYzAsMCwwLjQsMy44LDAuNSw0LjhjMCwwLTAuNS0xLjEtMS0zLjhDLTU4My43LDUzOS4xLTU4My40LDUzOC01ODMuMyw1MzguMSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxNDQiIGNsYXNzPSJzdDQiIGQ9Ik0tNTg2LjIsNTM5LjNjMCwwLDEuNCw0LjEsMiw1LjRjMCwwLTAuNC0xLjktMS40LTUuM0MtNTg1LjYsNTM5LjQtNTg2LjIsNTM5LjEtNTg2LjIsNTM5LjMiCgkJCS8+CgkJPHBhdGggaWQ9InBhdGgxMDE0OCIgY2xhc3M9InN0NSIgZD0iTS01ODcuNCw1ODMuN2MwLDAtMS4xLDUuNiwwLjEsMTIuMmMwLDAsMS43LDEwLjgsNi45LDEwLjVjMCwwLDQuNSwwLDQuNS0xMi44CgkJCWMwLDAtMC4xLTcuNy0yLTExLjdDLTU3OCw1ODEuOS01ODIuOCw1ODItNTg3LjQsNTgzLjciLz4KCQk8cGF0aCBpZD0icGF0aDEwMTUyIiBjbGFzcz0ic3QxIiBkPSJNLTU4Ny40LDU4My43YzAsMC0xLjEsNS42LDAuMSwxMi4yYzAsMCwxLjcsMTAuOCw2LjksMTAuNWMwLDAsNC41LDAsNC41LTEyLjgKCQkJYzAsMC0wLjEtNy43LTItMTEuN0MtNTc4LDU4MS45LTU4Mi44LDU4Mi01ODcuNCw1ODMuN0wtNTg3LjQsNTgzLjd6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDE1NiIgY2xhc3M9InN0NSIgZD0iTS01NzEuOCw1ODEuOWMwLDAtMS44LDQuMS0xLjYsMTJjMCwwLTAuMSwxMS4zLDQuNCwxMS44YzAsMCw1LDAuOSw2LjQtMTAuNgoJCQljMCwwLDEuMS02LjktMC4xLTExLjNDLTU2Mi44LDU4My45LTU2Ny43LDU4Mi01NzEuOCw1ODEuOSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxNjAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTcxLjgsNTgxLjljMCwwLTEuOCw0LjEtMS42LDEyYzAsMC0wLjEsMTEuMyw0LjQsMTEuOGMwLDAsNSwwLjksNi40LTEwLjYKCQkJYzAsMCwxLjEtNi45LTAuMS0xMS4zQy01NjIuOCw1ODMuOS01NjcuNyw1ODItNTcxLjgsNTgxLjl6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDMyNCIgY2xhc3M9InN0MSIgZD0iTS01NzksNTU5LjdjLTEuNC0yLjgtMC44LTYuNCwzLjYtNmM0LDAuNCwzLjQsMy4zLDMuMSw2LjEKCQkJQy01NzIuMyw1NTkuOC01NzQuNiw1NTkuNC01NzksNTU5Ljd6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDM2MCIgY2xhc3M9InN0NCIgZD0iTS01NzAuNCw1OTcuNmMwLjYsMCwxLjItMS4xLDEuMy0yLjVjMC4xLTEuNC0wLjQtMi42LTEtMi42Yy0wLjYsMC0xLjIsMS4xLTEuMywyLjUKCQkJQy01NzEuNSw1OTYuNC01NzEuMSw1OTcuNi01NzAuNCw1OTcuNiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAzNjQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTcwLjQsNTk3LjZjMC42LDAsMS4yLTEuMSwxLjMtMi41YzAuMS0xLjQtMC40LTIuNi0xLTIuNmMtMC42LDAtMS4yLDEuMS0xLjMsMi41CgkJCUMtNTcxLjUsNTk2LjQtNTcxLjEsNTk3LjYtNTcwLjQsNTk3LjZ6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDM2OCIgY2xhc3M9InN0NCIgZD0iTS01NzguNyw1OTcuN2MwLjYsMCwxLjItMS4xLDEuMy0yLjVjMC4xLTEuNC0wLjQtMi42LTEtMi42Yy0wLjYsMC0xLjIsMS4xLTEuMywyLjUKCQkJQy01NzkuOCw1OTYuNS01NzkuMyw1OTcuNi01NzguNyw1OTcuNyIvPgoJCTxwYXRoIGlkPSJwYXRoMTAzNzIiIGNsYXNzPSJzdDEiIGQ9Ik0tNTc4LjcsNTk3LjdjMC42LDAsMS4yLTEuMSwxLjMtMi41YzAuMS0xLjQtMC40LTIuNi0xLTIuNmMtMC42LDAtMS4yLDEuMS0xLjMsMi41CgkJCUMtNTc5LjgsNTk2LjUtNTc5LjMsNTk3LjYtNTc4LjcsNTk3Ljd6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==","payload_type":"image\/svg+xml;base64","associated_login":{"id":11,"name":"Marvin","lang":"en","login_id":"Marvin","write_token":11,"last_access":"2018-06-17 17:00:02","writeable":true,"user_object_id":7,"security_tokens":[11],"password":"6f2T8rK4"}}}}}
Yeah, it's big and fugly, but it is completely valid.
When I feed it to JSONLint, I get a nice green bar and well-formatted JSON:
{
"people": {
"people": {
"new_user": {
"id": 7,
"name": "Marvin",
"lang": "en",
"read_token": 1,
"write_token": 11,
"last_access": "2018-06-17 16:56:49",
"writeable": true,
"surname": "Martian",
"middle_name": "D",
"given_name": "Marvin",
"nickname": "Angry Little Fella",
"payload": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0ic3ZnMjczMzMiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTU2LjggMjE5LjMiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTU2LjggMjE5LjM7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZFODZFO30KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMjMxRjIwO3N0cm9rZS13aWR0aDoxLjI1O30KCS5zdDJ7ZmlsbDojRThBRTEwO30KCS5zdDN7ZmlsbDojNTlBRDQwO30KCS5zdDR7ZmlsbDojMjMxRjIwO30KCS5zdDV7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGcgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQwLjIwOTM3LC0xMTIuNzAzNzcpIj4KCTxnIGlkPSJnMjcxMTQiIHRyYW5zZm9ybT0ibWF0cml4KDIuNjQ4NDAxNCwwLDAsMi42NDg0MDE0LDEyNjIuNDMzMSwtMTMwNi45NTEzKSI+CgkJPHBhdGggaWQ9InBhdGgxMDA0MCIgY2xhc3M9InN0MCIgZD0iTS01NjQuNyw1NTEuNGMwLjEsMCwyLjItNy4zLDMuMy05YzAsMC0xLjMtMC43LTIuMy0xYzAsMCwwLjMtMC43LDAuNC0xYzAsMC0xLjEtMC43LTIuOC0xCgkJCWMwLDAsMC4yLTAuOSwwLjMtMS4xYzAsMC00LjItMS42LTguMy0xYzAsMCwwLTAuNSwwLTAuN2MwLDAtNS41LTEuMS05LjUsMS4zYzAsMCwwLjEsMC43LDAuMSwwLjljMCwwLTEuMywwLjItMi4zLDAuNgoJCQljMCwwLTAuMS0wLjMtMC4yLTAuNmMwLDAtMy44LDEuNi01LDQuNmMwLDAsMiwzLjksMyw4Qy01ODgsNTUxLjYtNTY5LDU1Mi01NjQuNyw1NTEuNCIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNDQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTY0LjcsNTUxLjRjMC4xLDAsMi4yLTcuMywzLjMtOWMwLDAtMS4zLTAuNy0yLjMtMWMwLDAsMC4zLTAuNywwLjQtMWMwLDAtMS4xLTAuNy0yLjgtMQoJCQljMCwwLDAuMi0wLjksMC4zLTEuMWMwLDAtNC4yLTEuNi04LjMtMWMwLDAsMC0wLjUsMC0wLjdjMCwwLTUuNS0xLjEtOS41LDEuM2MwLDAsMC4xLDAuNywwLjEsMC45YzAsMC0xLjMsMC4yLTIuMywwLjYKCQkJYzAsMC0wLjEtMC4zLTAuMi0wLjZjMCwwLTMuOCwxLjYtNSw0LjZjMCwwLDIsMy45LDMsOEMtNTg4LDU1MS42LTU2OSw1NTItNTY0LjcsNTUxLjRMLTU2NC43LDU1MS40eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNDgiIGNsYXNzPSJzdDIiIGQ9Ik0tNTY2LjQsNTYxLjZjMCwwLDIuNi01LjEsMy02LjNjMCwwLDAuNi0wLjksMC40LTNjMCwwLDAtMS0yLjctMS45YzAsMC0xMS40LTMuOC0yMi41LDAuMgoJCQljMCwwLTAuNywwLjItMS4yLDEuNGMwLDAtMC40LDAuOS0wLjcsMmMwLDAtMC4xLDAuNywwLjMsMS42YzAsMCwyLjIsNC4zLDQsNi42Qy01ODUuNyw1NjIuMS01NjkuNiw1NjMuNS01NjYuNCw1NjEuNiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNTIiIGNsYXNzPSJzdDEiIGQ9Ik0tNTY2LjQsNTYxLjZjMCwwLDIuNi01LjEsMy02LjNjMCwwLDAuNi0wLjksMC40LTNjMCwwLDAtMS0yLjctMS45YzAsMC0xMS40LTMuOC0yMi41LDAuMgoJCQljMCwwLTAuNywwLjItMS4yLDEuNGMwLDAtMC40LDAuOS0wLjcsMmMwLDAtMC4xLDAuNywwLjMsMS42YzAsMCwyLjIsNC4zLDQsNi42Qy01ODUuNyw1NjIuMS01NjkuNiw1NjMuNS01NjYuNCw1NjEuNgoJCQlMLTU2Ni40LDU2MS42eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNTYiIGNsYXNzPSJzdDIiIGQ9Ik0tNTczLjksNTYwLjRjMCwwLDAtMS43LDAtMi42YzAsMCwwLjEtMS41LTAuOS0xLjdjMCwwLTEuMy0wLjYtMi41LDAuMWMwLDAtMC43LDAuMy0wLjYsMS43CgkJCWMwLDAsMCwyLjMsMCwyLjhDLTU3Ny44LDU2MC42LTU3NC44LDU2MS41LTU3My45LDU2MC40Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA2MCIgY2xhc3M9InN0MSIgZD0iTS01NzMuOSw1NjAuNGMwLDAsMC0xLjcsMC0yLjZjMCwwLDAuMS0xLjUtMC45LTEuN2MwLDAtMS4zLTAuNi0yLjUsMC4xYzAsMC0wLjcsMC4zLTAuNiwxLjcKCQkJYzAsMCwwLDIuMywwLDIuOEMtNTc3LjgsNTYwLjYtNTc0LjgsNTYxLjUtNTczLjksNTYwLjRMLTU3My45LDU2MC40eiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNjQiIGNsYXNzPSJzdDMiIGQ9Ik0tNTUwLjMsNTc1LjRjMCwwLTUuNy0xNi4xLTI2LjItMTUuOWMwLDAtMTktMC45LTI1LjYsMTguNgoJCQlDLTYwMi4xLDU3OC4yLTU3NCw1NjkuMi01NTAuMyw1NzUuNCIvPgoJCTxwYXRoIGlkPSJwYXRoMTAwNjgiIGNsYXNzPSJzdDEiIGQ9Ik0tNTUwLjMsNTc1LjRjMCwwLTUuNy0xNi4xLTI2LjItMTUuOWMwLDAtMTktMC45LTI1LjYsMTguNgoJCQlDLTYwMi4xLDU3OC4yLTU3NCw1NjkuMi01NTAuMyw1NzUuNHoiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDcyIiBjbGFzcz0ic3QzIiBkPSJNLTU1Mi42LDU5OS41YzAsMCw1LTAuNiw1LjYtMy4xYzAsMCwwLjQtMC41LDAuMS0xLjhjMCwwLDAuOC02LjYsMC4yLTEzLjJjMCwwLTAuNC0yLTIuMy00LjUKCQkJYzAsMC04LjctMTMuNy0yOC42LTEzYzAsMC0xNy44LDAtMjYuMSwxNi4yYzAsMC0wLjksMS4zLTAuOSwzLjhjMCwwLTAuMiw0LjQsMS4zLDExLjJjMCwwLTAuNywyLjUsMywzLjhjMCwwLDEuMSwwLjMsMS45LDAuNAoJCQljMCwwLDEuMiwwLjIsMi4xLDAuM2MwLDAsMS4yLDYuNi01LjksMTAuMmMwLDAsMy43LDYuNiw1LjUsOC44aDIuNWMwLDAsNS43LTUuMiwxMS03YzAsMCwxNS45LTMuOCwyMC41LTEuMmMwLDAsNC41LDUsNS44LDcuNwoJCQljMCwwLDEuNC0wLjEsMi40LTAuMWMwLDAsNS02LjQsNi44LTguNkMtNTQ3LjYsNjA5LjMtNTUyLjcsNjA2LjMtNTUyLjYsNTk5LjUiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDc2IiBjbGFzcz0ic3QxIiBkPSJNLTU1Mi42LDU5OS41YzAsMCw1LTAuNiw1LjYtMy4xYzAsMCwwLjQtMC41LDAuMS0xLjhjMCwwLDAuOC02LjYsMC4yLTEzLjJjMCwwLTAuNC0yLTIuMy00LjUKCQkJYzAsMC04LjctMTMuNy0yOC42LTEzYzAsMC0xNy44LDAtMjYuMSwxNi4yYzAsMC0wLjksMS4zLTAuOSwzLjhjMCwwLTAuMiw0LjQsMS4zLDExLjJjMCwwLTAuNywyLjUsMywzLjhjMCwwLDEuMSwwLjMsMS45LDAuNAoJCQljMCwwLDEuMiwwLjIsMi4xLDAuM2MwLDAsMS4yLDYuNi01LjksMTAuMmMwLDAsMy43LDYuNiw1LjUsOC44aDIuNWMwLDAsNS43LTUuMiwxMS03YzAsMCwxNS45LTMuOCwyMC41LTEuMmMwLDAsNC41LDUsNS44LDcuNwoJCQljMCwwLDEuNC0wLjEsMi40LTAuMWMwLDAsNS02LjQsNi44LTguNkMtNTQ3LjYsNjA5LjMtNTUyLjcsNjA2LjMtNTUyLjYsNTk5LjV6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA4MCIgY2xhc3M9InN0NCIgZD0iTS01NTIuNSw1OTAuOGMwLDAsMC40LDIyLjEtMjEuNywyMi45YzAsMC0yMi44LDItMjEuOC0yNS4zYzAsMCw0LjUtNi4xLDIwLjktNi44CgkJCUMtNTc1LjIsNTgxLjctNTYxLjIsNTgxLjEtNTUyLjUsNTkwLjgiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDg0IiBjbGFzcz0ic3QxIiBkPSJNLTU1Mi41LDU5MC44YzAsMCwwLjQsMjIuMS0yMS43LDIyLjljMCwwLTIyLjgsMi0yMS44LTI1LjNjMCwwLDQuNS02LjEsMjAuOS02LjgKCQkJQy01NzUuMiw1ODEuNy01NjEuMiw1ODEuMS01NTIuNSw1OTAuOEwtNTUyLjUsNTkwLjh6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDA4OCIgY2xhc3M9InN0MSIgZD0iTS01NTIuNSw1OTAuOGMwLDAsMy4zLDMuOCwyLjcsNS4xYzAsMC0wLjQsMS4xLTIuNCwxLjMiLz4KCQk8cGF0aCBpZD0icGF0aDEwMDkyIiBjbGFzcz0ic3QxIiBkPSJNLTU5Ni4xLDU4OC41YzAsMC0yLjIsMi4xLTMuNSw0LjdjMCwwLTEuMSwyLjEtMC4yLDMuMmMwLDAsMC42LDEuMSwzLjIsMS4yIi8+CgkJPHBhdGggaWQ9InBhdGgxMDA5NiIgY2xhc3M9InN0MSIgZD0iTS01OTguOSw1OTIuMWMwLDAsMi4yLDMsMi43LDcuNSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMDAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTk0LjMsNjAxLjNjMCwwLDAuMyw0LjgtNS4xLDguNGMwLDAsMy45LDYuNyw1LjIsOC45Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDEwNCIgY2xhc3M9InN0MSIgZD0iTS02MDIuMSw2MDkuOGMwLDAsMi4xLTAuMSwyLjgtMC4xIi8+CgkJPHBhdGggaWQ9InBhdGgxMDEwOCIgY2xhc3M9InN0MSIgZD0iTS02MDMuMiw1OTVjMCwwLDEuMS02LDguNS0xMC45YzAsMCw3LTUuNiwxOS42LTUuNWMwLDAsMTcuMi0wLjgsMjcsMTNjMCwwLDEuMiwxLjUsMS4zLDMuMSIKCQkJLz4KCQk8cGF0aCBpZD0icGF0aDEwMTEyIiBjbGFzcz0ic3QxIiBkPSJNLTU1NS4yLDYwMi4zYzAsMCwwLjksNC4xLDQuMSw2LjljMCwwLTQuNiw3LjEtNS43LDguNyIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMTYiIGNsYXNzPSJzdDEiIGQ9Ik0tNTQ3LjYsNjA5LjNjMCwwLTIuMy0wLjItMy40LTAuMiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMjAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTUyLjYsNTk5LjZjMCwwLDAuMy00LjYsMS41LTYuOSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMjQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTYzLjQsNTU1LjNjMCwwLTEuNi0zLjEtMTMuNC0zYzAsMC05LjksMC4zLTEzLjMsMi41Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDEyOCIgY2xhc3M9InN0NCIgZD0iTS01NjMuNyw1NDAuNWMwLDAtMS4yLDIuOS0xLjgsNC41YzAsMCwwLjktMS40LDEuOS0zLjNDLTU2My42LDU0MS43LTU2My42LDU0MC41LTU2My43LDU0MC41CgkJCSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxMzIiIGNsYXNzPSJzdDQiIGQ9Ik0tNTY2LjQsNTM5LjNjLTAuMywxLTAuOCwyLjQtMS4zLDQuOGMwLjQtMC43LDAuNi0xLjIsMS43LTQuNAoJCQlDLTU2NS45LDUzOS43LTU2Ni4xLDUzOC40LTU2Ni40LDUzOS4zIi8+CgkJPHBhdGggaWQ9InBhdGgxMDEzNiIgY2xhc3M9InN0NCIgZD0iTS01NzQuNCw1MzdjLTAuMSwxLjEtMC4xLDMuOS0wLjEsNS4zYzAsMCwwLjQtMS4zLDAuNi00LjkKCQkJQy01NzMuOSw1MzcuNC01NzQuMiw1MzYuOS01NzQuNCw1MzciLz4KCQk8cGF0aCBpZD0icGF0aDEwMTQwIiBjbGFzcz0ic3Q0IiBkPSJNLTU4My4zLDUzOC4xYzAsMCwwLjQsMy44LDAuNSw0LjhjMCwwLTAuNS0xLjEtMS0zLjhDLTU4My43LDUzOS4xLTU4My40LDUzOC01ODMuMyw1MzguMSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxNDQiIGNsYXNzPSJzdDQiIGQ9Ik0tNTg2LjIsNTM5LjNjMCwwLDEuNCw0LjEsMiw1LjRjMCwwLTAuNC0xLjktMS40LTUuM0MtNTg1LjYsNTM5LjQtNTg2LjIsNTM5LjEtNTg2LjIsNTM5LjMiCgkJCS8+CgkJPHBhdGggaWQ9InBhdGgxMDE0OCIgY2xhc3M9InN0NSIgZD0iTS01ODcuNCw1ODMuN2MwLDAtMS4xLDUuNiwwLjEsMTIuMmMwLDAsMS43LDEwLjgsNi45LDEwLjVjMCwwLDQuNSwwLDQuNS0xMi44CgkJCWMwLDAtMC4xLTcuNy0yLTExLjdDLTU3OCw1ODEuOS01ODIuOCw1ODItNTg3LjQsNTgzLjciLz4KCQk8cGF0aCBpZD0icGF0aDEwMTUyIiBjbGFzcz0ic3QxIiBkPSJNLTU4Ny40LDU4My43YzAsMC0xLjEsNS42LDAuMSwxMi4yYzAsMCwxLjcsMTAuOCw2LjksMTAuNWMwLDAsNC41LDAsNC41LTEyLjgKCQkJYzAsMC0wLjEtNy43LTItMTEuN0MtNTc4LDU4MS45LTU4Mi44LDU4Mi01ODcuNCw1ODMuN0wtNTg3LjQsNTgzLjd6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDE1NiIgY2xhc3M9InN0NSIgZD0iTS01NzEuOCw1ODEuOWMwLDAtMS44LDQuMS0xLjYsMTJjMCwwLTAuMSwxMS4zLDQuNCwxMS44YzAsMCw1LDAuOSw2LjQtMTAuNgoJCQljMCwwLDEuMS02LjktMC4xLTExLjNDLTU2Mi44LDU4My45LTU2Ny43LDU4Mi01NzEuOCw1ODEuOSIvPgoJCTxwYXRoIGlkPSJwYXRoMTAxNjAiIGNsYXNzPSJzdDEiIGQ9Ik0tNTcxLjgsNTgxLjljMCwwLTEuOCw0LjEtMS42LDEyYzAsMC0wLjEsMTEuMyw0LjQsMTEuOGMwLDAsNSwwLjksNi40LTEwLjYKCQkJYzAsMCwxLjEtNi45LTAuMS0xMS4zQy01NjIuOCw1ODMuOS01NjcuNyw1ODItNTcxLjgsNTgxLjl6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDMyNCIgY2xhc3M9InN0MSIgZD0iTS01NzksNTU5LjdjLTEuNC0yLjgtMC44LTYuNCwzLjYtNmM0LDAuNCwzLjQsMy4zLDMuMSw2LjEKCQkJQy01NzIuMyw1NTkuOC01NzQuNiw1NTkuNC01NzksNTU5Ljd6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDM2MCIgY2xhc3M9InN0NCIgZD0iTS01NzAuNCw1OTcuNmMwLjYsMCwxLjItMS4xLDEuMy0yLjVjMC4xLTEuNC0wLjQtMi42LTEtMi42Yy0wLjYsMC0xLjIsMS4xLTEuMywyLjUKCQkJQy01NzEuNSw1OTYuNC01NzEuMSw1OTcuNi01NzAuNCw1OTcuNiIvPgoJCTxwYXRoIGlkPSJwYXRoMTAzNjQiIGNsYXNzPSJzdDEiIGQ9Ik0tNTcwLjQsNTk3LjZjMC42LDAsMS4yLTEuMSwxLjMtMi41YzAuMS0xLjQtMC40LTIuNi0xLTIuNmMtMC42LDAtMS4yLDEuMS0xLjMsMi41CgkJCUMtNTcxLjUsNTk2LjQtNTcxLjEsNTk3LjYtNTcwLjQsNTk3LjZ6Ii8+CgkJPHBhdGggaWQ9InBhdGgxMDM2OCIgY2xhc3M9InN0NCIgZD0iTS01NzguNyw1OTcuN2MwLjYsMCwxLjItMS4xLDEuMy0yLjVjMC4xLTEuNC0wLjQtMi42LTEtMi42Yy0wLjYsMC0xLjIsMS4xLTEuMywyLjUKCQkJQy01NzkuOCw1OTYuNS01NzkuMyw1OTcuNi01NzguNyw1OTcuNyIvPgoJCTxwYXRoIGlkPSJwYXRoMTAzNzIiIGNsYXNzPSJzdDEiIGQ9Ik0tNTc4LjcsNTk3LjdjMC42LDAsMS4yLTEuMSwxLjMtMi41YzAuMS0xLjQtMC40LTIuNi0xLTIuNmMtMC42LDAtMS4yLDEuMS0xLjMsMi41CgkJCUMtNTc5LjgsNTk2LjUtNTc5LjMsNTk3LjYtNTc4LjcsNTk3Ljd6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==",
"payload_type": "image\/svg+xml;base64",
"associated_login": {
"id": 11,
"name": "Marvin",
"lang": "en",
"login_id": "Marvin",
"write_token": 11,
"last_access": "2018-06-17 16:56:49",
"writeable": true,
"user_object_id": 7,
"security_tokens": [11],
"password": "TuqWG+%y"
}
}
}
}
}
Nevertheless, feeding this JSON to PHP 7.2.1's json_decode() function keeps returning a JSON_ERROR_SYNTAX error (bad syntax).
I think the issue may be with the data in the SVG file, but that is valid Base64 data. It should be fine in JSON.
I tried all the various solutions mentioned in other posts, but still no dice.
Any ideas?
UPDATE: Here's the PHP code that I run it through:
echo('RESULT:<pre>');
var_dump(json_decode($result));
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
echo('</pre>');
That code, in my server/laptop, is what's exposing it.
UPDATE 2: This is the dump from my cURL routine, showing the response:
string(10159) "HTTP/1.1 200 OK
Date: Sun, 17 Jun 2018 17:29:35 GMT
Server: Apache
X-Powered-By: PHP/7.2.1
Content-Length: 10007
Content-Type: application/json
{"people":{"people":{"new_user":{"id":7,"name":"Marvin","lang":"en","read_token":1,"write_token":11,"last_access":"2018-06-17 17:29:35","writeable":true,"surname":"Martian","middle_name":"D","given_name":"Marvin","nickname":"Angry Little Fella","payload":"<REMOVED FOR BREVITY>","payload_type":"image\/svg+xml;base64","associated_login":{"id":11,"name":"Marvin","lang":"en","login_id":"Marvin","write_token":11,"last_access":"2018-06-17 17:29:35","writeable":true,"user_object_id":7,"security_tokens":[11],"password":"1Jq6$oT0"}}}}}"
OK. I wanted to let y'all know what happened. It ain't an answer, but it will be the one I greencheck.
I took off and nuked it from orbit, and now it works.
I have to assume that I did something that sent invisible characters that didn't make it into copy and paste, so the JSONLint never saw them. I'll bet if I had cURLed or wgetted straight from the test harness, it would have borked.
This is a warning to me: Don't get too feisty with the CLI. I'm maybe not as hot at this stuff as I'd like to think.
Thanks for the help, folks.
Im integrating Lightspeed API to my website like POS system. I currently getting the value file_get_contents(), but when Im trying to load it array I gives my the error 4 of json_last_error().
Here is my codes:
$maps_url = "http://cloud-docs.merchantos.com/API/Account/797/Item/?itemID=1";
$maps_json = file_get_contents($maps_url);
//print_r($maps_json);
$maps_array = json_decode(stripslashes($maps_json), true);
echo $data = $maps_array['Item']['systemSku'];
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
json_last_error();
Let me rephrase it then:
The shown URL does not retrieve JSON.
It pulls XML.
Therefore json_decode fails.
Hence there's no usable data in $maps_url.
Which is also why ['Item']['systemSku'] won't work.
(And stripslashes would have made no sense in there anyway).
So, investigate the API you're using. Figure out if there is a JSON variant available. Else throw away your code, and instead use a XML traversal frontend, such as SimpleXML.
As mario has said, $maps_url receives XML.
Check out xml_parse_into_struct for help with XML to array conversion.
Can't seem to find the solution to this, I want to load json data from a view variable like this
$this->json = $this->load->view('/jsonfiles/page.json','',true);
Outputting
var_dump(json_decode($this->json,true));
= NULL
The View seems to be rendering the .json file incorrectly, for the json_decode to fail. (maybe not incorrectly, but in a different format), Ive already tried to utf8_encode, no luck
JSON Variable within the page.json
[
{
"page" : {
"name" : "PageNameHere",
"date" : true
}
}
]
Or is there an alternative to doing this?
UPDATE: Yes it works when its an actual string in the variable like this
$this->json = '[{"page":{"name":"PageNameHere","date":true}}]';
var_dump(json_decode($this->json,true));
SOLUTION: So I've decided to figure this out one, and by my mistake, I had a "," comma in the last part of my JSON, which wasn't in this thread, I shorten the JSON for topic, but I found it, using this neat error switch, able to find JSON rendering errors
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
My Issue was labeled as "Syntax error, malformed JSON"
This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.
Closed 9 years ago.
My php code gives the following error:
syntax error, unexpected '{' on line 8
PHP Code:
$data = '<?php
# 1 = ON; 0 = OFF.
$str = '{ //line 8
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
},
"Apps": [ {
"App1": 1,
"App2": 0,
"App3": 1,
"App4": 0,
"App5": 0,
"App6": 0
} ]
}';
echo $str;
?>';
I'm a newbie to php. Can anybody help me finding where I'm wrong? Thanks.
That's because the second ' in here:
+-- open string constant
V
$data = '<?php
# 1 = ON; 0 = OFF.
$str = '{
^
+-- close string constant
is terminating the string constant. You probably want to escape it (and the other one just before the final echo) such as:
$data = '<?php
# 1 = ON; 0 = OFF.
$str = \'{
blah, blah, blah
}\';
echo $str;
?>';
Your string got terminated by the single quote (apostrophe) right before the { character. Escape the ' character using \'.
$data = '<?php
# 1 = ON; 0 = OFF.
$str = \'{ //line 8
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
},
"Apps": [ {
"App1": 1,
"App2": 0,
"App3": 1,
"App4": 0,
"App5": 0,
"App6": 0
} ]
}\';
echo $str;
?>';