我试图了解谁阅读这种格式的json,但我不能知道它映射到什么
我不知道"号码:号码:'文字'"等于m是对象的数组还是它的确是什么?
我认为我们在对象a:4
处有一些变量a: 1: {
s: 2: "r1";
a: 4: {
s: 12: "number_votes";
i: 2;
s: 12: "total_points";
i: 6;
s: 7: "dec_avg";
d: 3;
s: 9: "whole_avg";
d: 3;
}
}
希望有人可以让它对我来说可读。 因为它应该使这样的静态结构动态化并从数据库中调用每个值!
我知道json文件的常见结构,如
{"employees":[
{"firstName":"Mustafa", "lastName":"Elnagar"},
]}
答案 0 :(得分:3)
该代码段不是JSON,而是由PHP使用serialize()
序列化的对象或数组。
首先,让我们解码它。请注意,序列化字符串不应该有任何空格,因为它会破坏反序列化:
<?php
$serialized = 'a:1:{s:2:"r1";a:4:{s:12:"number_votes";i:2;s:12:"total_points";i:6;s:7:"dec_avg";d:3;s:9:"whole_avg";d:3;}}';
var_dump(unserialize($serialized));
这是我们的输出:
array (size=1)
'r1' =>
array (size=4)
'number_votes' => int 2
'total_points' => int 6
'dec_avg' => float 3
'whole_avg' => float 3
如果您想将上述内容传递回客户端以供您的javascript代码使用,请将其编码为JSON:
<?php
$serialized = 'a:1:{s:2:"r1";a:4:{s:12:"number_votes";i:2;s:12:"total_points";i:6;s:7:"dec_avg";d:3;s:9:"whole_avg";d:3;}}';
$unserialized = unserialize($serialized);
var_dump(json_encode($unserialized, JSON_PRETTY_PRINT));
这会产生有效的JSON:
{
"r1": {
"number_votes": 2,
"total_points": 6,
"dec_avg": 3,
"whole_avg": 3
}
}
您可能希望删除生产中的JSON_PRETTY_PRINT
标记,以使JSON更易于阅读。