PHP学习之JSON的奥秘

JSON简介

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。

JSON的语法规则

  • SON 语法是 JavaScript 对象表示法语法的子集。
  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON的表现形式

  • JSON数组

JSON 数组在方括号中书写:
数组可包含多个对象:

  {
  "employees": [
  { "firstName":"John" , "lastName":"Doe" },
  { "firstName":"Anna" , "lastName":"Smith" },
  { "firstName":"Peter" , "lastName":"Jones" }
  ]
  }
  • JSON对象

JSON的另一种表现形式是对象

{ "firstName":"John" , "lastName":"Doe" }

JSON的使用方法

  • JSON 在JAVA SCRIPT 中的使用

JSON在JAVA SCRIPT中的使用很频繁,当后台传递数据给前台时,通常是以JSON的格式传递的,但是前台获得的JSON数据无法直接使用,需要经过处理。
var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

假设这是前台获取到的数据,现在需要使用它是先要经过Java Script中的eval()函数的处理

  var obj=eval("("+txt+")");
  obj.employees[1].firstName='Bill';
  obj.employees[1].lastName='Gates';

这是对象类型的JSON数据在JAVA SCRIPT中的使用。数组类型的数据同理可以一样经过处理使用。

JSON在PHP中的使用

我们也会经常遇到前台传递数据给后台,传递过来的数据也不能直接使用需要经过json_decode()函数进行处理,如果传递过来的是JSON 对象类型的数据,可以加上第二个参数为true,意为经过将JSON对象转化成数组。便于后台的使用。同理,如果后台想要传递数据给前台,需要对数据用json_encode()函数进行转化。

  

结果会输出

  object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
  }

  array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
  }

json_encode()

   1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
  echo json_encode($arr);
  ?>

以上结果会输出

  {"a":1,"b":2,"c":3,"d":4,"e":5}

总结

以上就是JSON的基本用法,JSON在我们的web开发中经常使用,掌握它是必要的

你可能感兴趣的:(PHP学习之JSON的奥秘)