您的位置 >>> 星想互联 >>> 编程技术 >>> PHP基础
JSON.parse() 方法与$.parseJSON()方法
点击数:297  发布时间2018-07-18 11:03:45


JSON.parse() 方法与$.parseJSON()方法

1、 JSON.parse()


JSON.parse() 方法解析一个JSON字符串

参数
text
要被解析成JavaSctipt值的字符串
reviver 可选
如果是一个函数,则规定了原始值如何被解析改造,在被返回之前。
返回值
对应给定的JSON文本。
 

2、jQuery.parseJSON()函数


用于将格式完好的JSON字符串转为与之对应的JavaScript对象。

所谓"格式完好",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。

如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常,

例如:以下字符串均符合JSON格式,但它们不是格式完好的JSON字符串(因此会抛出异常):

// 以下均是字符串值,省略了两侧的引号,以便于展现内容

{id: 1} // id是属性名称,必须加双引号
{'id': 1} // id是属性名称,必须用双引号(不能用单引号)
{"name": 'CodePlayer'} // name属性的值是字符串,必须用双引号(不能用单引号)

以下是与jQuery.parseJSON()函数相关的jQuery示例代码,以演示jQuery.parseJSON()函数的具体用法:

var result1 = $.parseJSON( "{}" ); // 一个空的Object对象

var result2 = $.parseJSON( '{ "name": "CodePlayer", "age": 1 }' ); // 一个Object对象
alert( result2.name ); // CodePlayer

var result3 = $.parseJSON( '[ 1, true, "CodePlayer" ]' ); // 一个Object对象
alert( result3[2] ); // CodePlayer

var result4 = $.parseJSON( 'true' ); // 布尔值:true

var result5 = $.parseJSON( 'null' ); // null

var result6 = $.parseJSON( '0' ); // 整数:0

var result7 = $.parseJSON( '"专注于编程开发技术分享"' ); // 字符串值:专注于编程开发技术分享

var result8 = $.parseJSON( "\"专注于编程开发技术分享\"" ); // 字符串值:专注于编程开发技术分享


/* 以下均是无效的JSON字符串或非常规的参数值 */

var result9 = $.parseJSON( 100 );  // 1.9之前返回null;1.9+返回100
var result10 = $.parseJSON( 1.23 );  // 1.9之前返回null;1.9+返回1.23
var result11 = $.parseJSON( true );  // 1.9之前返回null;1.9+返回true
var result12 = $.parseJSON( null );  // 返回null

var result13 = $.parseJSON( "" ); // 1.9之前返回null;1.9+抛出错误
var result14 = $.parseJSON( undefined );  // 1.9之前返回null;1.9+抛出错误

var result15 = $.parseJSON( "undefined" ); // 抛出错误
var result16 = $.parseJSON( "12x;xx'无效的JSON字符串x4546" ); // 抛出错误
var result17 = $.parseJSON( '{ name: "CodePlayer", age: 1 }' ); // 抛出错误
var result18 = $.parseJSON( '{ "name": \'CodePlayer\', "age": 1 }' ); // 抛出错误
var result19 = $.parseJSON( '{ "name": "Code\tPlayer\n" }' ); // 抛出错




json和php数组 格式的互相转换,参考如下:

$php_json = json_encode($json_arr);  //把php数组格式转换成 json 格式的数据
echo $php_json;
$php_json = json_decode($php_json);   //再把json格式的数据转换成php数组
print_r($php_json);
json数组
$json = '[{"id":"22","name":"33","descn":"44"}]';   //json格式的数组转换成 php的数组
$arr = (Array)json_decode($json);

echo $arr[0]->id;  //用对象的方式访问。


下面是结合数据库使用的案例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="jquery-1.9.0.min.js"></script>
<script>
$(function(){
$.get('data.php',function(data){
arr=((jQuery.parseJSON(data)))
$.each(arr,function(i,v){
console.log(v.title)
})
$("div").html(data)
})
})
</script>
</head>

<body>
<div></div>
</body>
</html>


data.php页面的程序:



<?php
$pdo=new pdo("mysql:host=localhost;dbname=news","root","");
$pdo->query("set names utf8");
$sql="选择 id,title,fdate from `info`";
$stmt=$pdo->query($sql);
$rs=$stmt->fetchAll();
$data = json_encode($rs);
echo $data; 
?>

来源:咸宁网站建设
【上一篇】javascript数组去重
【下一篇】eval函数的工作原理