前言
web客户端和服务器通过AJAX(HTTP REQUEST)进行数据交换,而JSON是AJAX中目前最常用的数据格式,非常重要。
一、json是什么?
JSON: JavaScript Object Notation JS
对象简谱
,
是一种轻量级的数据交换格式.
二、json格式
一个对象
,
由一个大括号表示
.
括号中 描述对象的属性
.
通过键值对来描述对象的属性
(
可以理解为
,
大括号中
,
包含的是一个个的键值对
.)
格式
:
键与值之间使用冒号连接
,
多个键值对之间使用逗号分隔
.
键值对的键 应使用引号引住
(
通常
Java
解析时
,
键不使用引号会报错
.
而
JS
能正确解
析
.)
键值对的值
,
可以是
JS
中的任意类型的数据
例如:
{
"name":"张三",
"age":"18"
}
三、json解析
国内常用的两种json有谷歌版和阿里版
谷歌版又称GSON,要想使用谷歌版json,首先需要在开源网站上下载gson的jar包,复制到程序语言上面。
下面是谷歌版json的操作
1、将对象转换为字符串
/*将对象转换为json字符串*/ import com.google.gson.Gson; public class Dome1 { public static void main(String[] args) { //创建Gson的对象 Gson gson = new Gson(); //创建一个实体对象book Book book = new Book("1001","张三","讲述了法外狂徒张三的一生"); //Gson调用toJson方法传入对象完成转换 String s = gson.toJson(book); //打印该字符串 System.out.println(s); //结果为 //{"id":"1001","info":"讲述了法外狂徒张三的一生","name":"张三"}
2、将字符串转换为对象
/*将json字符串转换为对象*/ import com.google.gson.Gson; public class Dome2 { public static void main(String[] args) { //先写出json类型的字符串 String json = "{\"id\":\"1001\",\"name\":\"张三\",\"info\":\"讲述了法外狂徒张三的一生\"}"; //new一个Gson对象 Gson gson = new Gson(); //通过调用fromjson方法传入字符串和对象类型.class进行转换 Book book = gson.fromJson(json, Book.class); //打印对象的ID System.out.println(book.getId()); //结果为1001 } }
三、将字符串转换为集合
/*将json字符串转换为集合*/ import com.google.gson.Gson; import java.util.HashMap; public class Dome3 { public static void main(String[] args) { //先写出json类型的字符串 String json = "{\"id\":\"1001\",\"name\":\"张三\",\"info\":\"讲述了法外狂徒张三的一生\"}"; //new一个Gson对象 Gson gson = new Gson(); //通过调用fromjson方法传入字符串和集合.class进行转换 HashMap data = gson.fromJson(json, HashMap.class); //打印对象的id System.out.println(data.get("id")); //结果同样为1001 } }
要想使用阿里版json,可以在开源网站上搜索下载fastjson的jar包,复制到程序语言上面。
下面是阿里版json的操作。
1、将对象转换为json字符串
/*将对象转换为json字符串*/ import com.alibaba.fastjson.JSON; public class Dome4 { public static void main(String[] args) { //创建一个实体对象book Book book = new Book("1001","张三","讲述了法外狂徒张三的一生"); //通过JSON的toJSONString方法转换为JSON字符串 String s = JSON.toJSONString(book); //打印该字符串 System.out.println(s); //结果为 //{"id":"1001","info":"讲述了法外狂徒张三的一生","name":"张三"} } }
2、将json字符串转换为对象
/*将json字符串转换为对象*/ import com.alibaba.fastjson.JSON; public class Dome5 { public static void main(String[] args) { //先写出要转换的json字符串 String json = "{\"id\":\"1001\",\"name\":\"张三\",\"info\":\"讲述了法外狂徒张三的一生\"}"; //调用JSON的parseObject方法传入字符串以及对象类型.class完成转换 Book book = JSON.parseObject(json, Book.class); //打印对象的Info System.out.println(book.getInfo()); //结果为 //讲述了法外狂徒张三的一生 } }
3、将json字符串转换为数组
/*将json字符串转换为数组*/ import com.alibaba.fastjson.JSON; import java.util.List; public class Dome6 { public static void main(String[] args) { //转换["123","234","345"] List<String> strings = JSON.parseArray("[\"123\",\"234\",\"345\"]", String.class); //打印数组的1下标 System.out.println(strings.get(1)); //结果为 //234 } }
总结
以上就是今天讲解的内容,对json以及对谷歌版和阿里版的两种json的常用转换方式做了简单的介绍,希望对后来的学习者能有所帮助。