• json


    想写一篇文章,整理下自己对json的了解情况。

    1.什么是json。

    JSON,JavaScript Object Notation (javascript对象标记).
    JSON是一种轻量级的文本交换格式,是text format.

    JSON 是一种用来序列化对象、数组、数值、字符串、布尔值和null的语法.

    2.json对象,json字符串,以及两者的相互转换。

    json字符串:指的是符合json格式要求的js字符串。例如:var jsonObj = '{ "StudentID": "100", "Name": "tmac", "Hometown": "usa" }';
    json对象:指符合json格式要求的js对象。例如:var jsonObj = { "StudentID": "100", "Name": "tmac", "Hometown": "usa" };

    var jsonObj = { "StudentID": "100", "Name": "tmac", "Hometown": "usa" };

    console.log(Object.prototype.toString.call(jsonObj))

    运行结果为:[object Object],却不是[object JSON]。所以我认为此处json对象这种说法并无实际意义。我们说的JSON对象应该是JavaScript内置对象,它的两个方法用于序列化js对象和反序列化json字符串。

    在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JS对象,所以,JS对象和JSON字符串之间的相互转换是关键。

    这里介绍4种json字符串和json对象相互转换的方法。

    1>jQuery插件支持的转换方式

    $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

    2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

    JSON.parse(jsonstr); //可以将json字符串转换成json对象
    JSON.stringify(jsonobj); //可以将json对象转换成json对符串

    注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

    3>Javascript支持的转换方式
    eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
    注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

    4>JSON官方的转换方式
    http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
    可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

    3.应用场景实例。

    3-1)json格式数据转成树状结构的json数据。

    3-2)ajax交互,以json文本为数据传输格式。

    4.使用的json的优点

    参考

    http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

    http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html

    http://www.jb51.net/article/35090.htm

  • 相关阅读:
    thinkphp5整合 gatewaywork实现聊天
    php输出日志
    php的ob函数实现页面静态化
    30个php操作redis常用方法代码例子
    redis三种启动方式
    Redis实战
    支付宝即时到账接口开发
    PHP生成excel表格文件并下载
    微信平台提供三种公众号
    【Performance】chrome调试面板
  • 原文地址:https://www.cnblogs.com/web-coding/p/4789440.html
Copyright © 2020-2023  润新知