zoukankan      html  css  js  c++  java
  • JSON和JavaScript对象

    var obj={100,height:200},这样的并不叫JSON,并且JSON只是一种数据格式,并不是具体的实例。

    但很多人把这样的JS对象当成JSON,下面把这个问题讲清楚

    一、JSON是什么?(JSONJavaScript对象有什么区别?)如何把JS对象转化为JSON字符串?又如何把JSON字符串转化为JavaScript对象?

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON格式的数据,主要是为了跨平台交流数据用的。

    但JSON和JavaScript确实存在渊源,可以说这种数据格式是从JavaScript对象中演变出来的,它是JavaScript的一个子集。JSON本身的意思就是JavaScript对象表示法(JavaScript Object Notation),它用严格的JavaScript对象表示法来表示结构化的数据。

    它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号;

    JSON只是一种数据格式(或者叫数据形式),数据格式其实就是一种规范,格式、形式、规范是不能用来存诸数据的。我们不能把以下的对象叫JSON,比如:

    <script>

    var obj2={};//这只是JS对象

    var obj3={100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */

    var obj5={"width":100,"height":200,"name":"rose"}; /*我们可以把这个称做:JSON格式的JavaScript对象 */

    var str1='{"width":100,"height":200,"name":"rose"}';/*我们可以把这个称做:JSON格式的字符串 */

     

    var a=[

    {"width":100,"height":200,"name":"rose"},

    {"width":100,"height":200,"name":"rose"},

    {"width":100,"height":200,"name":"rose"},

    ];

    /*这个叫JSON格式的数组,是JSON的稍复杂一点的形式 */

    var str2='['+

    '{"width":100,"height":200,"name":"rose"},'+

    '{"width":100,"height":200,"name":"rose"},'+

    '{"width":100,"height":200,"name":"rose"},'+

    ']' ;

    /*  这个叫稍复杂一点的JSON格式的字符串  */

     

    </script>

     

    JSON和JS对象对比表

    区别

    Json

    Javascript对象

    含义

    仅仅是一种数据格式

    表示类的实例

    传输

    可以跨平台数据传输,速度快

    不能传输

    表现

    1,键值对方式,键必须加引号

    2,值不能是方法函数,不能是undefined/NaN

    1,键值对方式,键不加引号

    2,值可以是函数、对象、字符串、数字、boolean 等

    相互转换

    Json转化为js对象:

    1,

     JSON.parse(jsonstring);

    (不兼容ie7)

    2,

    Jsobj=eval("("+jsonstring+")");

    (兼容所有浏览器,但不安全,会执行json里面的表达式?)

    Js对象转换为Json:

    JSON.stringify(jsobj);(不兼容ie7)

    其他

    调用json官网的js,实现parse  和 stringify 在各个浏览器的兼容

    :https://github.com/douglascrockford/JSON-js/blob/master/json2.js

  • 相关阅读:
    [数据库]Mysql蠕虫复制增加数据
    [YII2.0] 高级模板简单安装教程
    PHP 将字符串转换为字符集格式UTF8/GB2312/GBK 函数iconv()
    [腾讯云]简单在腾讯云 CenTOS7.0 安装Nginx,Mysql(MariaDB),Memcache,解析PHP!
    cojs 简单的01串 题解报告
    5.13 考试修改和总结
    cojs 简单的最近公共祖先 解题报告
    5.11 考试 修改+总结
    My_Plan part1 小结
    cojs 简单的数位DP 题解报告
  • 原文地址:https://www.cnblogs.com/sdream/p/5885055.html
Copyright © 2011-2022 走看看