一、潜规则: 按照字符串内存储的内容对字符串进行了一系列的划分

=> 普通字符串: 'jhsagdvhjkasgvfdhj'

=> 数字字符串: '798798654651323265987'

=> html 格式字符串: '<div></div>'

=> 查询字符串: 'key=value&key2=value2'


  json对象:描述数据的一种格式,将若干繁杂的属性封装为一个整体

        可以直接通过json对象,操作各个属性

1.定义,由{}括起来的键值对,每两个键值对用逗号分开

key:value

注意事项:所有的key请用双引号括起来

2.属性的访问  常用

a.通过点运算符访问

对象名.属性名

b.下标法

对象名[key]

c.为json对象添加新的自定义属性

对象名.新属性名 = 属性值

d.json对象的遍历

每次循环式=时变量代表索引

for(var 变量 in json对象){

循环体

}

e.在一个成员方法中使用其他的成员,需要添加前缀this

例如:

var stu = {"name": "老王","age": 88,"score": 100,"eat": function() {console.log("eat");},"showValue": function() {console.log(this.name, this.age, this.socre);this.eat();}}stu.showValue();

=> json 格式字符串:

字符串内写的是对象: '{ "name": "Jack", "age": 18 }'

字符串内写的是数组: '[{ "name": "Jack", "age": 18 }, { "name": "Jack", "age": 18 }]'

要求:

1. json 格式字符串内, key 的位置必须使用 双引号包裹

2. json 格式字符串内, 必须是 对象或者数组(数组内是一个一个的对象) 的形式

3. json 格式字符串内, value 的位置, 如果是 纯数字或者布尔, 不需要包裹

4. json 格式字符串内, 不能包含函数数据类型

5. json 格式字符串内, 不允许最后一条数据以后还有一个 逗号(,)

6. json 格式字符串内, 引号以外的内容, 只有 冒号, 逗号, 大括号, 中括号

-> 书写的就是 js 内的对象数据或者数组数据

-> js 给我们提供了 json 格式转换的方法

-> json 格式是一种独立格式, 我们可以直接书写 .json 格式文件

// 1. js 的数据类型转换成 json 格式字符串

// 语法: JSON.stringify(要转换的js格式数据)

// 返回值: json 格式字符串

// var obj = { name: 'Jack', age: 18, gender: '男' }

// var res = JSON.stringify(obj)

// console.log(res)

// 2. json 格式字符串转换成 js 的数据类型

// 语法: JSON.parse(json格式字符串)

// 注意: 传递的参数必须是一个合法的 json 格式字符串, 否则直接报错

// var str = '{"name":"Jack","age":18,"gender":"男"}'

// var res = JSON.parse(str)

// console.log(res)

// Uncaught SyntaxError: Unexpected token a in JSON at position 0

// 只要看到这个错误, 说明 JSON.parse(xxx) 这个方法执行了

// xxx 不是一个 json 格式字符串内

// 你需要找到 xxx 是哪来的

// 3. 利用 json 格式实现深拷贝

var obj = {

name: 'Jack',

age: 18,

gender: '男',

info: {

height: 180,

weight: 180,

address: {

city: '北京'

}

},

hobby: [ '吃饭', '睡觉', [ '篮球', '足球' ] ]

}

// 3-1. 把 obj 直接转换成 json 格式

var r1 = JSON.stringify(obj)

console.log(r1)

// 3-2. 把转换好的 json 格式字符串在转换会对象

var res = JSON.parse(r1)

console.log(res)

console.log(obj)

obj.info.address.city = '上海'

console.log(res)

console.log(obj)

// var res = JSON.parse(JSON.stringify(obj)) // 简易实现深拷贝

二、严格模式

严格模式:你必须使用定义过的变量

被"use strict"修饰的作用域,所有变量必须定义才能使用

去掉了变量提升的作用

"use strict";a = 123;console.log(a);//未被定义时的打印var a; //定义

为什么使用严格模式:

①消除Javascript语法的一-些不合理、不严谨之处, 减少一些怪异行为;

②消除代码运行的一些不安全之处,保证代码运行的安全;

③提高编译器效率,增加运行速度;

④为未来新版本的Javascript做好铺垫。

⑤浏览器支持: IE10+ firefox 4+ Safari 5.1+ Chrome

json 格式字符串相关推荐

  1. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  2. ajax中json和文本的区别,json格式字符串--json对象 【ajax_responseText】重点

    JSON.parse(string) JSON.Stringify(object)document.getElementById("id").value=jsonObj    // ...

  3. Java实现向指定URL用POST方法发送Json格式字符串参数请求的工具类

    场景 SpringBoot项目中通过后台Controller向某服务接口发送POST请求. 实现 在项目pom.xml中添加依赖 <dependency><groupId>co ...

  4. SpringMVC的数据响应-回写数据-直接回写json格式字符串(应用)

    @RequestMapping(value="/quick8") @ResponseBody public String save8() throws IOException {r ...

  5. 关于json格式字符串解析并用mybatis存入数据库

    园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...

  6. php 获取 js json数据类型,JS基础-JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换...

    JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换 1. JS的数据类型和访问 1.1. 原始类型JS中的原始数据类型有: number , string , boolean ; 声 ...

  7. fastjson 检测json格式_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换...

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  8. SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    JAVA技术交流QQ群:170933152 解析嵌套json,这里说一下: //下面可以通过解析多级json的方式,获取数据,插入到数据库 //JSONObject userJsonObj = JSO ...

  9. js怎么解析json格式字符串

    json是种常用数据传输格式,js怎么解析json格式的数据呢,请参阅下面的代码: <html><head><script type="text/javascr ...

  10. Json格式字符串转字典

    首先,安装NewtownSoft.Json库 然后,引入命名空间 using Newtonsoft.Json; using Newtonsoft.Json.Linq; 最后,代码如下 /// < ...

最新文章

  1. r 语言计算欧氏距离_一文搞懂常用R语言统计值计算:打倒描述性统计拦路虎
  2. php调用接口接口代码无法执行,php调用c接口无错版介绍
  3. php微信墙开发,Node.js如何开发微信墙
  4. SaaS新模式:业务、财务与支付无缝对接
  5. python 3.6.5编译安装_Centos7下编译安装python3.6.5
  6. k8s资源清单:常用字段说明及pod增删查示例
  7. Swift-函数的理解
  8. 精讲23种设计模式-策略模式~聚合短信服务和聚合支付服务
  9. STM32 - CubeMX 的使用实例详细(01.1)- ST-LINK V2 的配置
  10. SGU 201 Non Absorbing DFA (DP)
  11. 华为机试HJ68:成绩排序
  12. struts2 struts.xml 配置(转载)
  13. Android资料之-EditText中的inputType
  14. 誰毀了全新Vista電腦﹖
  15. adb小天才,小天才调试工具包下载
  16. Grub4dos 硬盘引导 iso 文件
  17. 自动化测试处理银行密码输入框
  18. 董事局主席董事长总裁首席执行官CEO总裁董事监事区别
  19. Linux虚拟机(Centos7)桥接模式静态ip配置/克隆后MAC地址配置、主机名修改
  20. mybatis where 标签使用

热门文章

  1. 彻底解决win10出现的无法访问网络位置*:\XXXXX\XXXXX的问题
  2. 多项式回归分析之预测成本和利润
  3. 基于C++的即时通信软件设计
  4. NLP在网络文学领域的应用
  5. 常用软件的 Linux 版本
  6. 利用谷歌搜索建立自己的站内搜索引擎
  7. html入住登记源码,酒店客户入住登记管理系统设计与实现.doc
  8. 叉乘点乘混合运算公式_【“数”你好看】对数运算(Logarithm)
  9. mysql按照学生分组查询_MySQL分组查询
  10. alter table添加表约束