json的使用

前后端分离不可少的json数据传输格式
在这里插入图片描述
通过异步接口(AJAX/JSONP)来编程,
下面是json的介绍,ajax在jquery中详细讲过

接口规范

1、接口返回数据即显示:前端仅做渲染逻辑处理;
2、渲染逻辑禁止跨多个接口调用;
3、前端关注交互、渲染逻辑,尽量避免业务逻辑处理的出现;
4、请求响应传输数据格式:JSON,JSON数据尽量简单轻量,避免多级JSON的出现

格式

基本格式
200: 请求处理成功
500: 请求处理失败
401: 请求未认证,跳转登录页
406: 请求未授权,跳转未授权提示页

{
    "code": 200,
    "data": {
        "message": "success"
    }
}

实体格式:

{
    'code': 200,
    'data': {
        'message': 'success',
        'entity': {
            'id': 1,
            'name': 'XXX',
            'hobby': 'XXX'
        }
    }
}

列表格式:

{
    "code": 200,
    "data": {
        "message": "success",
        " list": [
            {
                " id": 1,
                "name": "XXX",
                "hobby": "XXX"
            },
            {
                " id": 2,
                "name": "XXX",
                " hobby": "XXX"
            }
        ]
    }
}

分页格式:

{
    code: 200,
    data: {
        recordCount: 2,//当前页记录数
        message: "success",
        totalCount: 2,//总记录数
        pageNo: 1,//当前页码
        pageSize: 10,//每页大小
        list: [
            {
                id: 1,
                name: "XXX",
               hobby: "H001"
            },
            {
                id: 2,
                name: "XXX",
                 hobby: "H001"
            } ],
        totalPage: 1//总页数
    }
}

下拉框、复选框、单选框

{
    code: 200,
    data: {
        message: "success",
        list: [{
            id: 1,
            name: "XXX",
            hobby: "XXX",
            isSelect: 1
        }, {
            id: 1,
            name: "XXX",
         hobby: "XXX",
            isSelect: 0
        }]
    }
}

后端接口统一逻辑判定是否选中,通过isSelect标示是否选中,禁止下拉框、复选框、单选框判定选中逻辑由前端来处理
Boolean类型
JSON数据传输中一律使用1/0来标示,1为是/True,0为否/False;
日期类型
JSON数据传输中一律使用字符串,具体日期格式因业务而定

json的介绍

是轻量级的数据交换格式
json简单说就是JavaScript的对象和数组
对象:{key1:value1,key2:value2,…}
数组:[“java”,“javase”,“javaee”]
注:这两种结构可以互相嵌套
[{key1:value1},{key2:value2},{key3:value2}]
{key1:[value1,value2],key2:[value2]}

Fastjson的介绍

JSONObject代表json对象
1、实现了Map接口,底层是Map实现
2.对应json对象,通过各种形式的get()方法可以获取对象中的数据,也可以用size(),isEmpty()等方法获取键值对的个数,以及判断是否为空,其本质是通过实现Map接口并调用接口中的方法实现
2、JSONArray代表json数组
内部是有list接口中的方法来完成操作的
3、JSON代表JSONObject和JSONArray的转化
主要实现json对象。json对象数组。javabean对象、json字符串之间的相互转化
java对象转化成json数据,也可以将一个json转化成java对象
Fastjson是阿里提供的一个开源json插件
处理jsond的插件 fastjson、jsonlib、flexjson、jackson

import com.alibaba.fastjson.JSONObject;

public class Tourist {
    private int id;//游客id
    private String name;//游客姓名
    private String gender;//游客性别
    private String phone;//手机号码
 	 public Tourist(){

    }
    public Tourist(int id,String name,String gender,String phone){
        this.id=id;
        this.name = name;
        this.gender = gender;
        this.phone = phone;
        }
}


    public static void main(String[] args) {
      import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.qj.pojo.Tourist;

public class TestJson {
    public static void main(String[] args) {
        Tourist tourist = new Tourist(1,"安好","男","2311313");

        //对象转化成json
       String json = JSONObject.toJSONString(tourist);
       System.out.println(json);
        System.out.println(JSON.toJSONString(tourist));
        System.out.println(JSON.toJSON(tourist));

   System.out.println(JSON.toJSONString(json));
    }
}

    }
}
{"gender":"男","id":1,"name":"安好","phone":"2311313"}
{"gender":"男","id":1,"name":"安好","phone":"2311313"}
{"name":"安好","id":1,"gender":"男","phone":"2311313"}
"{\"gender\":\"男\",\"id\":1,\"name\":\"安好\",\"phone\":\"2311313\"}"
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;

import java.util.ArrayList;
import java.util.List;

public class Project {
    //java对象转化成json数据格式

    @JSONField(name="编号")
    private int id;
    @JSONField(name = "名称")
    private String name;
    @JSONField(name = "数量")
    private int count;
    @JSONField(name = "金额")
    private double price;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值