#JSON 学习笔记
###基础知识
####格式(单对象)
{
"name":"时间旅行者的妻子",
"enname":"The Time Traveler\'s Wife",
"star":3
}
####格式(多对象)
[
{
"name":"时间旅行者的妻子",
"enname":"The Time Traveler\'s Wife",
"star":5
},
{
"name":"时间旅行者的妻子",
"enname":"The Time Traveler\'s Wife",
"star":5
}
]
###php中
$json = json_encode($ary); //生成json
$obj = json_decode($json); //解析json
返回json数据的时候直接echo就可以了
如果需要,可以给json中添加flag作为一些参数进行传递,传递的时候只传递json数据
$result=[]; //结果集
while($row = $sql_result->fetch_array()){
$result[data][]=$row; //把数据库数据添加到$result[data]中
}
if(sizeof($result[data])<1){ //判断是否有数据,添加flag到$result[flag]中
$result[flag]=false;
}else{
$result[flag][]=true;
}
echo json_encode($result); //生成json数据进行传输
###jQuery中
使用ajax获取的数据好像直接就被转换成了数组或者对象
$.ajax({
type:"GET",
url: "film.php/?page="+page,
dataType: 'json',
success: function(data){
if(data.flag){
InsertData(data);
$('#load_more').html('加载更多');
}else{
//判断falg,如果false就改变按钮,去除点击事件
$('#load_more').html('-- 已到底 --').off('click').addClass('disabled');
}
},
error:function(){
$('#load_more').html('加载失败');
}
});
function InsertData(obj){
$.each(obj.data, function (obj_id,temp) {
var node = '<a id="film'+id+'" class="list-group-item film">\
<span>'+temp.name+'</span>\
<small class="film-enname"> '+temp.name_en+'</small>\
<span class="pull-right hidden-xs film-star">'+StarRank(temp.star)+'</span>\
</a>';
$('#film-list').append(node);
id++;
echo('第'+index+'次加载数据');
});
index++;
}