1. 基本概念
JSON是特殊格式的字符串,可以被任意语言所识别,并转换为任意语言中的对象。
JSON主要用来做不同语言中数据的交互
1.格式:
和JS对象一样,只不过属性名必须加双引号
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中允许的值:
- 字符串
- 数字
- 布尔
- null
- 普通对象
- 数组
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
- 在需要使用该数据的组件中import JSONdata from '文件地址'
- 组件中的data定义数据容器testData
- 生命周期函数中(一般是mounted或者created)执行
this.testData=JSONdata[对应字段或者全部]
2. 方法二:require
- 直接赋值
this.testData = require("./json/JSONdata.json");无需import
3.使用mockjs提供数据接口
当后端还没提供数据接口时,模拟数据
1. mockjs使用步骤:
- 安装Mock
a.npm install mockjs --save-dev作为开发依赖安装 - 在src目录下创建mock文件夹
- 文件夹中创建MockServer.js文件:
- 导入mockjs
- 调用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)
- 入口文件中引入MockServer.js:
import './mock/mockServer'
2. mockjs注意事项
- mock.js只能通过ajax请求来测试,无法通过postman或者浏览器访问测试
- 不能通过传递参数的方式对数据进行查询 (未解决 希望解决了的大佬指点下