JavaScript JSON使用原理及注意事项

环境

  • vscode 1.46
  • Microsoft Edge 83

概念

JSON 是一种按照JavaScript对象语法的数据格式,这是 Douglas Crockford 推广的。

虽然它是基于 JavaScript 语法,但它独立于 JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON。

JSON可以作为一个对象或者字符串存在,前者用于解读 JSON 中的数据,后者用于通过网络传输 JSON 数据。

JavaScript 提供一个全局的 可访问的 JSON 对象来对这两种数据进行转换。

JSON 结构

{
 "squadName" : "Super hero squad",
 "homeTown" : "Metro City",
 "formed" : 2016,
 "secretBase" : "Super tower",
 "active" : true,
 "members" : [
  {
   "name" : "Molecule Man",
   "age" : 29,
   "secretIdentity" : "Dan Jukes",
   "powers" : [
    "Radiation resistance",
    "Turning tiny",
    "Radiation blast"
   ]
  },
  {
   "name" : "Madame Uppercut",
   "age" : 39,
   "secretIdentity" : "Jane Wilson",
   "powers" : [
    "Million tonne punch",
    "Damage resistance",
    "Superhuman reflexes"
   ]
  },
  {
   "name" : "Eternal Flame",
   "age" : 1000000,
   "secretIdentity" : "Unknown",
   "powers" : [
    "Immortality",
    "Heat Immunity",
    "Inferno",
    "Teleportation",
    "Interdimensional travel"
   ]
  }
 ]
}

JSON 数组

[
 {
  "name" : "Molecule Man",
  "age" : 29,
  "secretIdentity" : "Dan Jukes",
  "powers" : [
   "Radiation resistance",
   "Turning tiny",
   "Radiation blast"
  ]
 },
 {
  "name" : "Madame Uppercut",
  "age" : 39,
  "secretIdentity" : "Jane Wilson",
  "powers" : [
   "Million tonne punch",
   "Damage resistance",
   "Superhuman reflexes"
  ]
 }
]

其他注意事项

  • JSON 是一种纯数据格式,它只包含属性,没有方法。
  • JSON 要求有两头的 { } 来使其合法。最安全的写法是有两边的括号,而不是一边。
  • 甚至一个错位的逗号或分号就可以导致 JSON 文件出错。您应该小心的检查您想使用的数据(虽然计算机生成的 JSON 很少出错,只要生成程序正常工作)。您可以通过像 JSONLint 的应用程序来检验 JSON。
  • JSON 可以将任何标准合法的 JSON 数据格式化保存,不只是数组和对象。比如,一个单一的字符串或者数字可以是合法的 JSON 对象。虽然不是特别有用处……
  • 不像 JavaScript 标识符可以用作属性,在 JSON 中,只有字符串才能用作属性。

对象和文本间的转换

可以使用 JSON.stringify 和 JSON.parse 来进行对象和文本间的转换。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Go语言的JSON处理详解

    Go语言内建对JSON的支持.使用Go语言内置的encoding/json标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据.在Go语言实现JSON的编码和解码时,遵循RFC4627协议标准. 1.编码为JSON格式 使用json.Marshal()函数可以对一组数据进行JSON格式的编码.json.Marshal()函数的声明如下: 假如有如下一个Book类型的结构体: 并且有如下一个Book类型的实例对象: 然后,我们可以使用json.Marshal()函数将gobook实例生成

  • nodejs读取本地中文json文件出现乱码解决方法

    1. 确定json文件是UTF-8 无BOM编码的的.如果有BOM,会在读取第一行的时候出现乱码. Per "fs.readFileSync(filename, 'utf8') doesn't strip BOM markers #1918", fs.readFile is working as designed: BOM is not stripped from the header of the UTF-8 file, if it exists. It at the discret

  • JavaScript根据json生成html表格的示例代码

    之前公司有一个需求是:通过js来生成html.而且大部分都是生成表格,直接通过字符串拼接的话,代码的可复用性太低的,所以写了个通用的json转html表格的工具. 代码 htmlKit = { _tags: [], html: [], _createAttrs: function (attrs) { var attrStr = []; for (var key in attrs) { if (!attrs.hasOwnProperty(key)) continue; attrStr.push(k

  • JSON生成Form表单的方法示例

    JSON表单描述 JSON表单是一个基于React的抽象组件,它可以把JSON数据格式描述的表单转换成项目中的表单,它可以用简短的几行代码,快速的生成Form表单. JSON表单的优点是: 可以快速构建出一个表单 表单的数据.逻辑.视图分离,方便抽离和进一步抽象 提供校验.自动缓存等额外功能,提升录入体验 可以跨项目的共用复杂的表单组件 原始表单的缺点 1:代码量庞大,开发效率低 每次开发一个表单页的时候,都需要重复编写表单组件及其交互事件的代码,这块代码重复编写且与主线业务逻辑无关,除此之外,

  • 跨域解决之JSONP和CORS的详细介绍

    JSONP跨域和CORS跨域 什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名.协议.端口均相同. 浏览器执行JavaScript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行. JSONP跨域 只支持GET请求,不支持POST等其它请求,也不支持复杂请求,只支持简单请求. CORS跨域 支持所有的请求,包含GET.POST.OPTOIN.PUT.DELETE等.既支持复杂请求,也支持简单请求

  • $.ajax中contentType: “application/json” 的用法详解

    具体内容如下所示: $.ajax({ type: httpMethod, cache:false, async:false, contentType: "application/json; charset=utf-8", dataType: "json",//返回值类型 url: path+url, data:jsonData, success: function(data){ var resultData = '返回码='+data.status+',响应结果='

  • 简单说说angular.json文件的使用

    在Angular CLI 6+的版本后,原先的angular-cli.json就被换成了angular.json,而其中里面的字段变化挺大了,如果不了解基本的组成,或者直接把老版本的代码 copy 到新版本的工作空间中,会导致一些很不友好的错误. 这种变化主要还是因为Angular CLI引入了 monorepo (一个空间管理多个项目) 的开发模式,即使用ng new出来的相当于一个大的工作空间,通过angular.json配置来管理各种ng generate application | li

  • MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例

    需求是这样的:需要修改数据库中某个表的所有数据,所以,要全部导出,然后修改,修改完之后,再把修改后的数据给再导入到mongo去. 具体如下: 备份,导出一张表为json文件 具体命令: mongoexport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations --db ezsonar_25 --out /root/host_locations.jso

  • JavaScript JSON使用原理及注意事项

    环境 vscode 1.46 Microsoft Edge 83 概念 JSON 是一种按照JavaScript对象语法的数据格式,这是 Douglas Crockford 推广的. 虽然它是基于 JavaScript 语法,但它独立于 JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON. JSON可以作为一个对象或者字符串存在,前者用于解读 JSON 中的数据,后者用于通过网络传输 JSON 数据. JavaScript 提供一个全局的 可访问的 JSON 对象来对

  • javascript深拷贝的原理与实现方法分析

    本文实例讲述了javascript深拷贝的原理与实现方法.分享给大家供大家参考,具体如下: 要讲JavaScript的拷贝,就得先讲讲javascript中的值传递和引用传递. javascript中没有一个具体的语法来规定哪些参数是引用传递,而其他语言中都有明文规定,比如 C# 中的 ref 和 PHP 中的 & . 这也是javascript众多弊端中的一个. 我们先看看下面这段代码: //值传递 var i = 3; var j = i; j = 4; document.write(i);

  • JavaScript JSON.stringify()的使用总结

    一.使用方法 1.基本用法 JSON.stringify()可以把一个JavaScript对象序列化为一个JSON字符串. let json1 = { title: "Json.stringify", author: [ "浪里行舟" ], year: 2021 }; let jsonText = JSON.stringify(json1); 默认情况下,JSON.stringify()会输出不包含空格或缩进的JSON字符串,因此jsonText的值是这样的: &q

  • javascript 定时器工作原理分析

    setTimeout() MDN对 setTimeout 的定义为: 在指定的延迟时间之后调用一个函数或执行一个代码片段. 语法 setTimeout 的语法非常简单,第一个参数为回调函数,第二个参数为延时的时间.函数返回一个数值类型的ID唯一标示符,此ID可以用作 clearTimeout 的参数来取消定时器: var timeoutID = window.setTimeout(code, delay); IE0+ 还支持回调参数的传入: var timeoutID = window.setT

  • 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号

    1 C,C++,Java,PHP都能容忍末尾的逗号 C,C++,Java中对数组赋值时,最后一个元素末尾的逗号可有可无.下面两行代码对这些语言来说是等效的. int a[] = {1,2,3}; /* 正确 */ int a[] = {1,2,3,}; /* 正确 */ PHP这一点也继承了C的特点,下面的两行代码等效. $a = array(1,2,3); /* 正确 */ $a = array(1,2,3,); /* 正确 */ 2 JavaScript视末尾逗号为语法错误! 然而到了Jav

  • Javascript json object 与string 相互转换的简单实现

    Javascript json object 与string 相互转换的简单实现 function obj2str(o){ var r = []; if(typeof o == "string" || o == null) { return o; } if(typeof o == "object"){ if(!o.sort){ r[0]="{" for(var i in o){ r[r.length]=i; r[r.length]=":

  • javascript内存分配原理实例分析

    本文实例讲述了javascript内存分配原理.分享给大家供大家参考,具体如下: JavaScript中的变量分为两种,原始值和引用值.原始值指的是原始数据类型的值,比如undefined,null,number,string,boolean类型所表示的值.引用值指的是复合数据类型的值,即Object,Function,Array等. 原始值和引用值存储在内存中的位置分别为栈和堆.原始值是存储在栈中的简单数据段,他们的值直接存储在变量访问的位置.引用值是存储在堆中的对象. 存储在栈中的值是一个指

  • 深入浅出理解JavaScript高级定时器原理与用法

    本文实例讲述了JavaScript高级定时器原理与用法.分享给大家供大家参考,具体如下: setTimeout()和setInterval()可以用来创建定时器,其基本的用法这里就不再做介绍了.这里主要介绍一下javascript的代码队列.在javascript中没有任何代码是立即执行的,一旦进程空闲则尽快执行.所以说定时器中设置的时间并不代表执行时间就一定相符,而是代表代码会在指定时间间隔后加入到队列中进行等待.如果在这个时间点上,队列中没有其他东西,那么这段代码就会被执行,表面上看上去好像

  • JavaScript事件委托原理与用法实例分析

    本文实例分析了JavaScript事件委托原理与用法.分享给大家供大家参考,具体如下: 在日常中,我们可能会听到事件委托这样的概念,有些同学可能对事件委托已经很了解了,也有些同学可能只是听过事件委托,只是会简单的使用,但是对于事件委托的原理不怎么知道.所以该博文会解释一下原生js的事件委托的原理,为什么会有事件委托,为什么可以这样用事件委托等等问题. 1. js中的事件流 在解析事件委托之前,我们先回顾一下js中的事件流,即冒泡和捕获. ① .冒泡:当下级节点触发某个事件的时候,该事件会逐级向上

  • JavaScript面向对象继承原理与实现方法分析

    本文实例讲述了JavaScript面向对象继承原理与实现方法.分享给大家供大家参考,具体如下: 1.构造函数.原型和实例的关系 构造函数有一个原型属性prototype指向一个原型对象. 原型对象包含一个指向构造函数的指针constructor . 实例包含一个指向原型对象的内部指针[[prototype]] . 2.通过原型链实现继承 基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法,子类型可以访问超类型的所有属性和方法.原型链的构建是将一个类型的实例赋值给另一个构造函数的原型实

随机推荐