zoukankan      html  css  js  c++  java
  • 服务器与客户端数据交互 (json)

    服务器返回到客户端json对象,是什么类型,而用ajax处理后,变成什么了。

     

    > 猜测1:服务器返回的数据带双引号: "返回值",理由:因为返回的类型都是字符串。

    结果无双引号:{"ID":1,"Name":"hpy","Age":18}
     
    错,返回的数据确实是字符串类型。
    但双引号只是字符串在C#中的语法规定(字符串由双引号括起来)
    当输出到了网页(html)就原样显示了。
    dataType:'text'/'html'
    string
    {"ID":1,"Name":"hpy","Age":18}
     

    > 猜测2:若由ajax处理后,变为指定的类型了,那么ajax对字符串进行了处理。

    对。
    但是输出字符串,同样不会显示双引号,因为双引号也仅是作为js语言中字符串的一种表示。
    所以输出字符串时,并不会带着双引号。
    要判断数据是那种类型,需要用到js中的typeof语法。
     

    总结:

    1、字符串在程序中都有各自的表示方法(单引号,双引号),而输出字符串时基本都会原样输出。
    因此我们需要知道数据的类型,需要用程序中的typeof方法。
    2、服务器返回到客户端的就是一个字符串,客户端若希望拿到一个对象类型,则需要一种规则
    来存储字符串。所js中出现了json语法来定义对象格式。服务器将数据序列化为json格式字符返回给客户端,此时客户端
    再将这个字符串转换为对象。
    jquery可以通过设置ajax的参数,dataType:'json',自动帮我们转换为json格式。
    而我们想要自己转换则有3种形式。
     

    >> json

    > json是什么?
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
     
    JSON 语法规则
    JSON 语法是 JavaScript 对象表示语法的子集。
    数据在名称/值对中
    数据由逗号分隔
    花括号保存对象
    方括号保存数组
     
    JSON 值
    JSON 值可以是:
    数字(整数或浮点数)
    字符串(在双引号中)
    逻辑值(true 或 false)
    数组(在方括号中)
    对象(在花括号中)
    null
     
     

    > 字符串类型转换为json类型的几种方式.

    1、eval
    var jsonObj = eval('('+str+')');
    2、new function
    jsonObj = (new Function("return " + str))();
    3、JSON.parse(str);
    jsonObj = JSON.parse(str); 
    // str必须是严格的JSON格式,属性需要字符串括起来。
    // 否则转换失败
    // 且JSON.parse是在IE8以上版本才有的。
     

    > 转换错误

    当字符串的值不符合json格式时,转换就会失败。
  • 相关阅读:
    JavaScript——闭包(转自别人)
    JavaScript ——内部函数和匿名函数
    socks5代理服务器ss5配置
    TCP部首长度定义
    九个Console命令,让js调试更简单
    一位前端新手入住博客园
    动画库 Tweenmax 使用示例1
    Dijkstra算法实例
    N皇后问题
    华为精益研发外包 PDF
  • 原文地址:https://www.cnblogs.com/simple-blog/p/4694687.html
Copyright © 2011-2022 走看看