json的使用:
一:jsonObject和jsonArray
”名称“:“值” “凌云‘:”男“
1:json对象:{“name”:“张三”,“sex”:“女”}
- 数据在键值对中。
- 逗号分割数据。
-花括号保存对象。
2:json数组:
-方括号保存数组
[{“name”:“张三”,“sex”:“女”},{“name”:“张三”,“sex”:“女”}]
json是一种独立于编程语言的 轻量的,数据交换格式
缺点:会丢失顺序性
主要代码段:
package jsondeal;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
public class JsonDeal {
public static void main(String[] args) {
JsonDeal.testJsonObject();
System.out.println("------------------------");
JsonDeal.testJsonReadFile();
}
public static void testJsonObject() {
//构建对象
Person p=new Person();
p.setName("Tom");
p.setAge(18);
p.setScores(Arrays.asList(23,24,25)); //把数组转化为list列表
//从java对象到json字符串
Gson gson= new Gson();
String s=gson.toJson(p);
System.out.println(s);
//json字符串到java对象
Person p1=gson.fromJson(s, Person.class); //提供两个参数,字符串和转化的类型
System.out.println(p1.getAge());
System.out.println(p1.getName());
System.out.println(p1.getScores());
//调用Gosn的jsonObject对象
JsonObject json=gson.toJsonTree(p).getAsJsonObject(); //将整个json解析为一颗树
System.out.println(json.get("name"));
System.out.println(json.get("age"));
System.out.println(json.get("scores"));
}
public static void testJsonReadFile() {
Gson gson=new Gson();
File file = new File("books2.json");
try(FileReader fileRead=new FileReader(file)){
List<Book> books = gson.fromJson(fileRead, new TypeToken<List<Book>>(){}.getType());
for(Book book:books) {
System.out.println(book.getAuthor()+".."+book.getPrice());
}
}catch(Exception e) {
e.printStackTrace();
}
}
}