JSON学习笔记

318 阅读2分钟

1. 基本概念

JSON是特殊格式的字符串,可以被任意语言所识别,并转换为任意语言中的对象。
JSON主要用来做不同语言中数据的交互

1.格式

和JS对象一样,只不过属性名必须加双引号

2.分类

  1. 对象 { }
  2. 数组 [123,"hello",true] 常用格式:
var json1={"name":"张三","age":18,"gender":"male"}
var json2={
  "persons":[
    {"name":"张三","age":18,"gender":"male"},
    {"name":"李四","age":19,"gender":"male"},
    {"name":"王五","age":20,"gender":"male"}
    ]
	}
var json3=[
  {"name":"张三","age":18,"gender":"male"},
  {"name":"李四","age":19,"gender":"male"},
  {"name":"王五","age":20,"gender":"male"}
]

取值:

name1=json1.name;
name2=json2.persons[0].name;
name3=json3[0].name

3.JSON中允许的值:

  1. 字符串
  2. 数字
  3. 布尔
  4. null
  5. 普通对象
  6. 数组

4.JS中的JSON工具

  • json-->object JSON转换为对象:
    • JSON.parse(json)
  • object--->json 对象转换为JSON:
    • JSON.stringify(obj)

2.JSON实践

1.JSON数据设计

JSON数据的组成:

  • 结构 ⭐
    • 类型 :包括整个JSON数据类型和其中数据的数据类型
  • 值 先确定JSON的类型:对象还是数组
  • 数组:同类型的数据 键是重复的
  • 对象:解释型数据

2. JSON文件引入项目

如果有一些处理好的JSON数据,可以导入项目直接作为对象使用

1. 方法一:import

  1. 在需要使用该数据的组件中import JSONdata from '文件地址'
  2. 组件中的data定义数据容器testData
  3. 生命周期函数中(一般是mounted或者created)执行this.testData=JSONdata[对应字段或者全部]

2. 方法二:require

  1. 直接赋值 this.testData = require("./json/JSONdata.json");无需import

3.使用mockjs提供数据接口

当后端还没提供数据接口时,模拟数据

1. mockjs使用步骤:

  1. 安装Mock
    a. npm install mockjs --save-dev 作为开发依赖安装
  2. 在src目录下创建mock文件夹
    1. 文件夹中创建MockServer.js文件:
    2. 导入mockjs
    3. 调用Mock.mock()函数封装数据接口 这里使用的是直接引入已有的json文件
import Mock from 'mockjs'
import recommend from './recommend.json'
import recommendRelated from '@/mock/recommendRelated.json'
const url={
    recommendURL:'http://localhost:8080/recommendation/recommend',
    recommendRelatedURL:'http://localhost:8080/recommendation/recommendRelated',
}
//Mock.mock(RegExp(url.recommendURL + ".*"),recommend)
 Mock.mock(url.recommendURL ,recommend)
Mock.mock(url.recommendRelatedURL,recommendRelated)
  1. 入口文件中引入MockServer.js:import './mock/mockServer'

2. mockjs注意事项

  • mock.js只能通过ajax请求来测试,无法通过postman或者浏览器访问测试
  • 不能通过传递参数的方式对数据进行查询 (未解决 希望解决了的大佬指点下