JSON详解

JSON

一、概念

1.1JSON是什么?

JSON全称JavaScript Object Notation,意:JavaScript对象标记、数据交换格式。

简而言之,JSON是一种标准的、轻量级的数据交换格式。在JS中以JS对象形式存在

1.2JSON有什么用?

JSON的主要作用是用于数据交换

  • 目前,90%以上的系统之间交换数据时,都采用JSON
  • 如:C编写的系统,要和java编写的系统进行数据交换,就可以利用JSON数据格式

1.3JSON的特点

实际开发中,常用数据交换格式有两种

  • XML:
    • 缺点:体积大、解析麻烦
    • 优点:语法严谨
    • 适用场景:银行相关业务
  • JSON
    • 缺点:
    • 优点:体积小、易解析

二、语法

2.1创建JSON对象

var json对象名 = {
    "属性名":属性值,
    "属性名":属性值
}
  • 示例:

    • ①属性值可以是普通的数据类型:String、Number、Boolean、数组

      var studentObj = {
        "sno":"110",
        "sname":"张三",
        "sex":"男"
      };
    • ②属性值也可以是json、json数组类型

      var studentObj = {
          "sno":"110",
          "sname":"战三",
          "aihao":["smoke","drink","tt"],
          "address":{//json格式
            "city":"北京",
            "street":"大兴区",
            "zipcode":111102
          }
      }
    • 设计JSON格式信息,可描述整个班级中每一个学生的信息,以及总人数

      var class = {
         "total": 3,
         "student":[
           {"name":"zhangsan","sex":true,"brith":"2002-04-08"},
           {"name":"lisi","sex":false,"brith":"2002-05-08"},
           {"name":"wangwu","sex":true,"brith":"2002-04-09"}
         ]
      }

2.2访问JSON对象的属性

①json对象名.属性名
②json对象名["属性名"]
  • 示例:
//访问studentObj对象的sno的属性值
studentObj.sno;
studentObj["sno"];
//访问studentObj对象的address的city的属性值(当属性值是json对象时)
studentObj.address.city;

2.3对比原生JS

原生JS中需,定义类,创建对象,访问对象的属性

//定义类
Student = function(sno,snname,sex){
   this.sno = sno;
   this.sname = sname;
   this.sex = sex;
}
//创建对象
var stu = new Student("111","李四","男");
//访问对象的属性
stu.sno

而JSON中,只需创建对象,访问对象属性

var student = {
   "sno": xxx,
   "sname":xxx,
   "sex":xxx
}

因而JSON也可以被称为无类型对象。

2.4JSON数组

①基础格式

var 数组名 = [{},{},{}]
  • 示例
//创建json数组对象
var students = [
    {"sno":110,"sname":"王五","sex":"男"},
    {"sno":120,"sname":"张三","sex":"男"}
]
//取出数组的值
 for(var i = 0; i < students.length; i++){
     //取出数组中每个json对象
     var stuObj = students[i];
     //访问该json对象的值
     stuObj[i].sno;
 }   

三、eval函数

3.1作用

eval函数的作用是:将字符串当做一串JS代码解析并执行

实际开发中最大的作用是:将json格式的字符串转化为json对象

  • 因为java连接数据库查询数据后,将数据在java程序中拼接成JSON格式的“字符串”,发给浏览器,并未转化为json格式字符串,因而不能使用.属性名获取到JSON的属性值

  • 示例:

//将"var i = 100" 当做js代码执行
window.eval("var i = 100;");
alert("i="+i);//结果是展示一个弹框, i = 100

3.2将JSON格式字符串转化为JSON对象

①基础语法:
eval("var 设置的json对象名 = " + 后端传来的json格式字符串名)
②示例:
//1.后端传来JSON格式字符串
var jsonStr = "{\"name\":\"zhangsan\",\"password\":\"123\"}";
//2.利用eval转化为json对象
window.eval("var json = "+jsonStr);
//3.访问json对象的属性值
json.name

四、获取并展示JSON数据

在此模拟静态的JSON格式数据,并将其拼接后展示在tbody中

①要拼接的JSON数据为:

var data = {
  "total":4,
  "emps" : [
    {"empno":7954,"ename":"ZHANGSAN","sal":400},
    {"empno":7955,"ename":"LISI","sal":500},
    {"empno":7956,"ename":"WANGWU","sal":600}
  ]
}

②完整代码

<input type="submit" id="btn" value="动态展示json数据">
<table>
    <thead>
         <tr>
             <td>序号</td>
             <td>姓名</td>
             <td>薪水</td>
         </tr>
    </thead>
    <tbody id="info">

    </tbody>
</table>
<div>总条数为<span id="total"></span></div>
<script>
    //点击按钮
    document.getElementById("btn").onclick = function (){
        //1.设置静态json数据,假设是后端传来的
        //2.将json格式字符串转化为json对象
        //此时不用转化为json对象
        var data = {
            "total":4,
            "emps" : [
                {"empno":7954,"ename":"ZHANGSAN","sal":400},
                {"empno":7955,"ename":"LISI","sal":500},
                {"empno":7956,"ename":"WANGWU","sal":600}
            ]
        }
        //3.对json数据进行处理
        //①.进行拼接
        var html ="";
        for(var i = 0; i < data.emps.length; i++){
        html += "<tr>";
        html += "<td>"+data.emps[i].empno+"</td>";
        html += "<td>"+data.emps[i].ename+"</td>";
        html += "<td>"+data.emps[i].sal+"</td>";
        html += "</tr>";
        }
        //②将拼接的内容渲染到页面中
        document.getElementById("info").innerHTML = html;
       document.getElementById("total").innerHTML = data.total;
    }
</script>

③效果图

五、浏览器向服务器发起请求的几种方式

①直接在浏览器栏上写URL,get请求

②点击页面超链接,get请求

③提交from表单,可get可post请求

④window.open(url)

⑤window.location.href = url;

⑥document.location.href = url;

六、js中,[]和{}有什么区别?

[]是数组 eg: var arr = [xx,xx,xx]

{}是json对象

而在java中,{}是数组 eg: int[] arr = {xx,xxx}

【拓】XML

①基本语法

XML也是一种数据交换格式,其格式如下:

<?xml version="1.0" encoding="GBK"?>
<student>
  <student sno="110">
         <sname>张三</sname>
         <sex>男</sex>
  </student>
    <student sno="120">
         <sname>李四</sname>
         <sex>男</sex>
  </student>
    <student sno="130">
         <sname>王五</sname>
         <sex>男</sex>
  </student>
</student>
②基本特性

1️⃣语法严格

XML的语法规则严格,不允许出错。

与HTML不同,XML中标签对缺少都会报错

2️⃣与HTML类似

XML与HTML都有一个父亲:SGML(标准通用的标记语言)

  • HTML主要做页面展示
  • XML主要做数据存储和数据描述

【拓】不同语言的系统怎么进行数据交换

c语言编写的系统和java语言编写的系统是不能够直接通信的,但基本所有编程语言都支持字符串类型。

因而可以c编写的系统查询数据库表信息后,可以利用字符串拼接为XML/JSON格式,再将该字符串传递给java编写的系统,以此达到不同语言系统通信的效果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
task.json 是 Visual Studio Code 编辑器中的一个配置文件,用于定义任务(Task)的相关信息,包括任务的命令、参数、工作目录、输入输出、启动配置等。通过 task.json 文件,可以方便地配置、管理和运行各种任务。 task.json 中的常用参数包括: - label:任务的标签,用于在任务列表中显示。 - type:任务的类型,可以是 "shell"、"process" 或 "npm" 等。 - command:执行任务的命令。 - args:执行任务命令的参数。 - problemMatcher:用于匹配命令输出中的错误信息,并在编辑器中显示错误提示。 - options:任务的额外选项,例如设置任务执行时的工作目录、环境变量等。 - presentation:任务在编辑器中的显示设置,例如是否在终端中显示执行输出。 任务可以通过任务列表或者快捷键进行运行。任务列表显示了所有的任务,可以选择性地运行某个任务。此外,还可以通过快捷键将任务与编辑器的某个功能进行关联,从而实现快速执行任务。 在 task.json 文件中,常见的任务配置包括: - 编译项目:通过配置编译器的命令和参数,可以在任务列表中快速编译代码。 - 运行测试:配置测试框架的命令和参数,可以方便地运行测试用例进行调试。 - 启动服务:通过配置启动服务的命令和参数,可以在任务列表中一键启动服务。 - 打包应用:配置打包工具的命令和参数,可以自动化生成可部署的应用程序。 总之,task.json 是 Visual Studio Code 编辑器中用于配置和管理任务的关键配置文件,通过它可以提高开发效率,简化操作,实现自动化和快速执行各种任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邓六日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值