JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔。其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组。
在JavaScript中,关联数组就是对象,对象就是关联数组。这点在PHP中完全不同。在php中,关联数组就是数组。
比如:
var a=[1,2,3,4];
a[‘foo‘]=‘Hello World‘;
alert(a.length);
最后的结果是4,也就是说,数组a的元素个数是4个。
在PHP中
<?php
$a=array(1,2,3,4);
$a["foo"]="Hello world";
echo count($a);
?>最后的结果是5,也就是说,数组a的元素个数是5个。
在JavaScript中,Json字符串和Json对象的转换。客户端提交过来的数据一般都是json字符串,有了更好地进行操作(面向对象的方式),所以我们一般都会想办法将json字符串转换为json对象
var str2 = { "name": "deluyi", "sex": "man" };
var str1 = ‘{ "name": "deyuyi", "sex": "man" }‘;Json.parse(字符串);//是Json字符串转换为Json对象。Json.stringify(对象);可以使用for…in…循环来遍历JSON对象中的数据,比如我们要遍历输出obj对象的值
function Traversal() { for (var c in obj) { console.log(c + ":", obj[c]); } }
在PHP中,json_decode(json_str,option) 把JSON 格式的字符串转换为 PHP数组或对象。option可选,默认false转为对象,true转为数组。在 php 中使用 json_encode()这个函数的功能是将数值转换成json数据存储格式,例如<?php$arr = array( ‘name‘=>‘刘德华‘, ‘age‘ = > 20 );$jsonencode = json_encode($str);echo $jsonecode;?>运行的结果如下:{
"Name"
:null,
"Age"
:20}json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json数据存储格式,最后再用urldecode()将编码过的中文转回来。
时间: 2024-10-14 09:16:18