Ajax处理JSON数据参考【学习笔记】

大致思路:php返回来的是字符串,通过aval或者json解析器转换成javascript对象,然后读取对象里的值,并进行处理(如写回html页面)
注意点:
    1、php页面输出格式应该是text/html,而不是xml。即应该指定:
        header("Content-Type:text/html;charset=utf-8");
    2、ajax接收数据时应使用responseText,而不是responseXML。
==方法1=====================eval=====================
//    示例:首先生成一段json格式的字符串,保存在txt变量中
//    ajax从php程序读取过来的也是一样:
//    类似于二维数组时,用方括号框起来
var txt = '{ "employees" : [' +
    '{ "firstName":"Bill" , "lastName":"Gates" },' +
    '{ "firstName":"George" , "lastName":"Bush" },' +
    '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
//JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
    var obj = eval ("(" + txt + ")");   // 固定的写法
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>
== 方法 2 ===================== JSON.parse =====================
//使用 JSON 解析器JSON.parse将JSON数据 转换为 JavaScript 对象是更安全的做法。
//JSON 解析器只能识别 JSON 文本,而不会编译脚本。
<p>
First Name: <span id="fname"></span><br /> 
Last Name: <span id="lname"></span><br /> 
</p> 
<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
var obj = JSON.parse(txt);
document.getElementById("fname").innerHTML=obj.employees[1].firstName 
document.getElementById("lname").innerHTML=obj.employees[1].lastName 
</script>
== 备注: ======================== =====================
1、遍历:
for(var i=0; i < obj.length; i++) {
    // 执行代码
}
2、如果服务器返回的json是多组数据,其格式如下,每组数据的样式不一定要求一致:
    $info="
        [
            {"属性名":''属性值","属性名":''属性值",...},
            {"属性名":''属性值","属性名":''属性值",...},
            ......
        ]";
//转成对象:
    var obj=eval("("+xmlHttpRequest.responseText+")");
//通过obj[i].属性名可以取得任意位置的属性值,很类似数组的使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值