Maison > Article > développement back-end > Analyse PHP Json
Cet article présente principalement l'analyse PHP Json. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Tout le monde devrait être familier avec JSON (JavaScript Object Notation) , qui est un format d'échange de données léger. Facile à lire et à écrire pour les humains. Il est également facile à analyser et à générer pour les machines. Il est basé sur un sous-ensemble du Langage de programmation JavaScript, norme ECMA-262 3e édition - décembre 1999. JSON adopte un format de texte totalement indépendant de la langue, mais utilise également des conventions similaires à la famille de langages C (y compris C, C++, C#, Java, JavaScript, Perl, Python, etc.). Ces fonctionnalités font du JSON un langage d'échange de données idéal.
JSON est construit à partir de deux structures :
"Nom/Valeur" Une collection de paires nom/valeur). Dans différentes langues, il est compris comme objet (objet), enregistrement (enregistrement), structure ( >struct), dictionnaire (dictionnaire), table de hachage (table de hachage), liste de clés (liste à clés), ou tableau associatif (tableau associatif). Une liste ordonnée de valeurs). Dans la plupart des langues, il est compris comme un tableau (array). PHP
sérialiser
consiste à sérialiser les variables et à renvoyer un type de variable et expressions de chaîne structurelles. En parlant de cela, les deux incarnent une structure de données sous la forme d'une chaîne. Alors, quelle est la différence entre elles ? Commençons par JSON
et regardons un exemple simple.
Programme1 : Afficher les résultats : Variabletest dans {"Name":"Peter","Age":20} est une variable avec Objet de 2 éléments (ressemble à un tableau de PHP) : Nom est Pierre, Âge est 20. Bien sûr, cela peut aussi devenir plus compliqué : Programme2: Spectacle résultats : Dans cet exemple Utilisateur L'élément contient Nom et Âge. Si vous souhaitez refléter plusieurs Utilisateurs, vous devez utiliser un tableau, qui est différent du "{}" de l'objet, utilisez "[]" pour les tableaux. Programme3 : Afficher les résultats : 通过以上简单实例就能将一些复杂数据通过一个字符串来进行传递,再配合上Ajax的确是方便很多。 下面再来看看PHP的serialize函数的作用。 程序4: 显示结果: 这个结果看上去比JSON要复杂一些,其实也很简单,它说明的就是一些数据类型和结构。 以a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}为例: a:2说明这是个有两个元素的数组(array),s:7:"Country";s:3:"USA";为第一个元素,s:7说明这是有7个字符的字符串(string),后面i:20;也应该猜得到是整数(integer)20。 再来看一下这个例子: 程序5: 显示结果: 从这个例子中可以看出来,serialize对数据的类型和结构都进行的保存,unserialize后的变量仍然可以使用add()方法。 那么PHP和JSON有没有联系呢,熟悉PHP的朋友应该了解PHP5.2.0已经将JSON extension设置为默认组件,也就是说我们可以在PHP中进行JSON操作,其函数为json_encode和json_decode。 程序6: 显示结果: 这个结果和例一中test值是一样的,通过json_encode将PHP中的变量转换为JSON字符出表达式。 再来看看json_decode的用法。 程序7: 显示结果: 这的确验证了,在JSON中{"Name":"Peter","Age":20}是一个对象,但是在PHP中也可以将其转为数组,在json_decode中将ASSOC参数设置为True即可。 程序8: 显示结果: 另,需要注意的是JSON是基于Unicode格式,所以要进行中文操作要将其转化为UTF-8格式。 通过上面这些例子相信大家对于JSON和PHP的serialize、json_encode都有了初步了解,结合PHP、Javascript、JSON以及Ajax就可以完成强大的数据交互功能。 相关推荐:var test = {"Name":"Peter","Age":20};
document.write(test.Name + ": " + test.Age);
Peter: 20
var test = {"User":{"Name":"Peter","Age":20},"Company":"FORD"};
document.write(test.User.Name + ": " + test.Company);
Peter: FORD
var test = [
{"User":{"Name":"Peter","Age":20},"Company":"FORD"},
{"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}
];
document.write(test[1].User.Name + ": " + test[1].Company);
//或者使用:document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]);
Li Ming: Benz
$arr = array
(
'Peter'=> array
(
'Country'=>'USA',
'Age'=>20
),
'Li Ming'=> array
(
'Country'=>'CHINA',
'Age'=>21
)
);
$serialize_var = serialize($arr);
echo $serialize_var;
a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"Li Ming";a:2:
{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}}
class test
{
var $var = 0;
function add(){
echo $var+10;
}
}
$unserialize_var = new test;
$serialize_var = serialize($unserialize_var);
echo $serialize_var;
$unserialize_var = null;
$unserialize_var = unserialize($serialize_var);
$unserialize_var->add();
O:4:"test":1:{s:3:"var";i:0;}
10
$arr = array
(
'Name'=>'Peter',
'Age'=>20
);
$jsonencode = json_encode($arr);
echo $jsonencode;
{"Name":"Peter","Age":20}
$var = '{"Name":"Peter","Age":20}';
$jsondecode = json_decode($var);
print_r($jsondecode);
stdClass Object ( [Name] => Peter [Age] => 20 )
$var = '{"Name":"Peter","Age":20}';
$jsondecode = json_decode($var,true);
print_r($jsondecode);
Array ( [Name] => Peter [Age] => 20 )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!