网站建设属于IT,可视化设计最重要的是确定网站的,wordpress发帖软件,网站转换小程序一、JSON
#xff08;一#xff09;、简介
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写#xff0c;同时也易于机器解析和生成#xff0c;并有效地提…一、JSON
一、简介
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写同时也易于机器解析和生成并有效地提升网络传输效率。
二、语法
1、对象表示为键值对数据由逗号分隔花括号保存对象; 方括号保存数组。
2、json数据类型6种
字符串 abc, 123 数字 1 , 1.21 对象 {name : 张三} 数组 [1,2,3] boolean truefalse null null
3、常用对象
⚠️{age:18,name:张三,score:100} 和 {age:18,name:张三,score:100}
118是int还是字符串对于json来说是不一样的
2顺序不影响 没关系
4、常用数组
[{name: 张三, age: 18},{name: 李四, age: 16}]
5、类型组合
表示国家对象----一个类数组里面又包含另一个对象/类——省份{name: 中国,provinces: [{name: 黑龙江,capital: 哈尔滨}, {name: 广东,capital: 广州}, {name: 湖南,capital: 长沙}]}
二、JSON解析——利用fastJson框架
引入依赖 dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.76/version/dependency
一、Java对象与JSON之间的相互转换
1、序列化将对象的状态信息转换为可以存储或传输的形式的过程
java对象 JSON字符串 —— 序列化。 java转成别的就叫序列化
2、反序列化json字符串转化成java对象
JSON字符串 java对象—— 反序列化
3、JSON字符串序列化反序列化其对应的类有如下要求 必须是私有属性必须是空参构造必须有get set
二、方法
1、字符串 转 对象/map/接口 ———— JSONObject.parseObject(json字符串,要转的类/接口/map.class)
String json {name:\张三\,age:\18\};
Student s1 JSONObject.parseObject(json, Student.class);
2、对象/map 转 字符串 ————JSONObject.toJSONString对象
MapString, String map new HashMapString, String();
map.put(error, 1);
map.put(msg, 系统错误);
String jsonString JSONObject.toJSONString(map);
3、字符串数组转成List类/map...集合 ————JSONObject.parseArray(json,你要转的类/map/接口.class)
至于转成类的集合还是map的集合——比如常用的东西会建一个类比如不常用的可能直接用一个map存储
String jsonAraay [{\name\: \张三\, \age\: 18},{\name\: \李四\, \age\: 16}];转成对象————JSONObject.parseArray(jsonAraay, Student.class)
ListStudent list JSONObject.parseArray(jsonAraay, Student.class);
//输出 [Student{name张三, age18, scorenull}, Student{name李四, age16, scorenull}]
//scorenull——因为Student类中有score但是json列面没有 所以score是null
//student类中的属性和json转换的时候多一个少一个都没有关系多了就不封装少了就自己默认转成map————JSONObject.parseArray(jsonAraay, Map.class)
ListMap maps JSONObject.parseArray(jsonAraay, Map.class);
System.out.println(maps);//[{name张三, age18}, {name李四, age16}]
三、json转成map的几种方式
JSON类来解析 JSON.parse(str)——JSON类来解析JSON字符串 JSON.parseObject(str)——JSON类的parseObject来解析JSON字符串 JSON.parseObject(str,Map.class)——JSON类,指定解析类型,来解析JSON字符串
JSONObject是Map接口的一个实现类 JSONObject.parse(str)——JSONObject的parseObject方法来解析JSON字符串 JSONObject.parseObject(str,Map.class)——JSONObject的parseObject方法并执行返回类型来解析JSON字符串
举例
public class JsonToMapTest {public static void main(String[] args) {String str {\0\:\zhangsan\,\1\:\lisi\,\2\:\wangwu\,\3\:\maliu\};//第一种方式Map maps (Map) JSON.parse(str);System.out.println(这个是用JSON类来解析JSON字符串!!!);for (Object map : maps.entrySet()){System.out.println(((Map.Entry)map).getKey() ((Map.Entry)map).getValue());}//第二种方式Map mapTypes JSON.parseObject(str);System.out.println(这个是用JSON类的parseObject来解析JSON字符串!!!);for (Object obj : mapTypes.keySet()){System.out.println(key为obj值为mapTypes.get(obj));}//第三种方式Map mapType JSON.parseObject(str,Map.class);System.out.println(这个是用JSON类,指定解析类型,来解析JSON字符串!!!);for (Object obj : mapType.keySet()){System.out.println(key为obj值为mapType.get(obj));}//第四种方式/*** JSONObject是Map接口的一个实现类*/Map json (Map) JSONObject.parse(str);System.out.println(这个是用JSONObject类的parse方法来解析JSON字符串!!!);for (Object map : json.entrySet()){System.out.println(((Map.Entry)map).getKey() ((Map.Entry)map).getValue());}//第五种方式/*** JSONObject是Map接口的一个实现类*/JSONObject jsonObject JSONObject.parseObject(str);System.out.println(这个是用JSONObject的parseObject方法来解析JSON字符串!!!);for (Object map : json.entrySet()){System.out.println(((Map.Entry)map).getKey() ((Map.Entry)map).getValue());}//第六种方式/*** JSONObject是Map接口的一个实现类*/Map mapObj JSONObject.parseObject(str,Map.class);System.out.println(这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!);for (Object map: json.entrySet()){System.out.println(((Map.Entry)map).getKey() ((Map.Entry)map).getValue());}String strArr {{\0\:\zhangsan\,\1\:\lisi\,\2\:\wangwu\,\3\:\maliu\}, {\00\:\zhangsan\,\11\:\lisi\,\22\:\wangwu\,\33\:\maliu\}};// JSONArray.parse()System.out.println(json);}
}
//以上所得结果都一样