json格式简介和相关操作

前言:在日常工作中,我们常常会使用json做一些数据的处理,那了解json的一些基础知识和相关操作就尤为重要,本篇就是对于json格式的概括介绍和简单使用。

1、json格式简介

1.1 json基本信息

JSON:JavaScript Object Notation的简写,是一种轻量级数据交换格式。

数据类型:标量、序列(数组)、映射(key-value)

1.2 JSON的四个原则

 1 、并列数据之间用逗号隔开

 2、 映射用冒号:来表示

 3 、并列数据的集合用中括号[]来表示

 4、 映射的集合用大括号{}来表示

举例:

[
  {"城市":"北京","面积":"16800"},
  {"城市":"上海","面积":"6400"}
]

1.3、JSON的优点

1、 数据格式比较简单,格式是压缩的,占用带宽小 

2、 支持Python等服务器端语言,便于服务器解析

1.4、JSON的缺点

 1、字符集是Unicode

 2、语法过于严格,遵守4个原则

2、js操作json实例

2.1 第一种方法:evel()

特点:安全性底,不建议使用,单个JSON对象时要加括号,JSON数组就不需要了

示例:

var evajson  =eval('('+str+')');
var evajsarr = eval(t2);    

转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

console.log(Object.prototype.toString.call(evajso))//[object Object]
console.log(Object.prototype.toString.call(evajsarr))//[object Array]

2.2 第二种:new Function()

注意:函数要有返回,所以要加“return”;

示例:

1  var fnjson = new Function("return"+str)();
2  var fnjsonArr = new Function("return"+t2)();

转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

1 console.log(Object.prototype.toString.call(fnjson ))//[object Object]
2 console.log(Object.prototype.toString.call(fnjsonArr ))//[object Array]

2.3 第三种:JSON.parse()

特点:主流,兼容性好,推荐

示例:

1  var parjson =  JSON.parse(str);    
2  var parjson =  JSON.parse(t2); 

检测转后的数据类型

1  console.log(Object.prototype.toString.call(parjson ))//[object Object]
2  console.log(Object.prototype.toString.call(parjson ))//[object Array]

3、java操作json

3.1 方法1:request请求

通过将request请求转换为String,再转换为对象进行操作

1

2

3

4

public void notice(@RequestBody String request){

  JSONObject json = JSONObject.parseObject(request);

  String dataStr = json.getString("data");

  NoticeDO data = JSONObject.parseObject(dataStr,NoticeDO.class);

}

NoticeDo实体

1

2

3

4

5

public class NoticeDO {

    private String applyId;

    private String status;

    private String result;

}

3.2 方法2:对象

通过对象的形式,注意要把数据转化为json格式

1

2

public void notice(@RequestBody NoticeReq request){ // 对data进行解析

  NoticeDO data = JSONObject.parseObject(request.getData(),NoticeDO.class);

}

NoticeReq 实体类

1

2

3

4

5

public class NoticeReq {

    private String requestId;

    private String version;

    private String timestamp;

    private String data;

}

4、json其他注意事项

4.1 、josn存入mysql数据库

mysql数据库中可以定义json数据的基本样式,但在存储时会严格要求格式,多或少一个括号都要严格注意,否则就难以存入数据库,手动写数据存储时要严格注意。

此外,前端数据在写入后端时候,“”等字符串常常需要添加转译符\,这一点在我们使用postman输入存储json数据时要严格注意:

 4.2、 json前端使用

json在前端通常准换为对象的形式,以便于数据的操作和修改,其主要的转换函数如下:

 var obj1 = {"name":"测试对象","propetry":"12","propList":[]};
 console.log("obj:",obj1); //查看初始化对象
 var json =JSON.stringify(obj1)    //将对象转换为为String,也就是json字符串
 console.log("json:",json); //验证准换出来的json

 let test = JSON.parse(json); //将json转换为对象
 console.log("Sting:",test);  //验证准换出来的对象

最后打印出来的实例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值