JSON与JavaBean的转换——Java学习笔记(一)

JSON与JavaBean的转换

文章目录

  • JSON与JavaBean的转换
    • 1、 JSON在Javascript中的两个常用方法
    • 2、 JSON在java中的使用
      • 2.1、 JavaBean和json的互转
      • 2.2、 List和json的互转
      • 2.2、 map和json的互转

1、 JSON在Javascript中的两个常用方法

json的存在有两种形式。

一种是:对象的形式存在,我们叫它json对象。

一种是:字符串的形式存在,我们叫它json字符串。

一般我们要操作json中的数据的时候,需要json对象的格式。一般我们要在客户端和服务器之间进行数据交换的时候,使用json字符串。

JSON.stringify()把json对象转换成为json字符串

JSON.parse()把json字符串转换成为json对象

//把json对象转换成为json字符串
var jsonObjString = JSON.stringify(jsonObj);//特别像Java中对象的toStringalert(jsonObjString)
//把json字符串。转换成为json对象
var jsonObj2 = JSON.parse(jsonObjString);
alert(jsonObj2.key1);//12
alert(jsonObj2.key2);//abc

2、 JSON在java中的使用

2.1、 JavaBean和json的互转

@Test
publicvoidtest1(){
     
    Person person = new Person(1,"斗气化翼");
    //创建Gson对象实例
    Gson gson = new Gson();
    //toJson方法可以把java对象转换成为json字符串
    String person JsonString = gson.toJson(person);
    System.out.println(personJsonString);
    //fromJson把json字符串转换回Java对象
    //第一个参数是json字符串
    //第二个参数是转换回去的Java对象类型
    Person person1 = gson.fromJson(personJsonString,Person.class);
    System.out.println(person1);
    
}

2.2、 List和json的互转

创建一个PersonListType类继承于,gson.ar包下的TypeToken类

com.google.gson.reflect.TypeToken;
/**
 * 这里的泛型为要从json字符串转化成的类的类型
 * @Author beiqixing
 * @Description
 * @Date 2021/9/16 19:30
 */
public class PersonListType extends TypeToken<ArrayList<Person>> {
     
}

在json字符串转化为list时使用new PersonListType().getType()

@Test
publicvoidtest2(){
     
    List<Person> personList = new ArrayList<>();
    
    personList.add(new Person(1,"窦俊"));
    personList.add(new Person(2,"曹强"));
    
    Gsongson=new Gson();
    //把List转换为json字符串
    String personListJsonString = gson.toJson(personList);
    System.out.println(personListJsonString);
    
    //把json字符串转化为list
    List<Person> list = gson.fromJson(personListJsonString,new PersonListType().getType());
    System.out.println(list);
    Person person = list.get(0);
    System.out.println(person);

}

2.2、 map和json的互转

采用匿名内部类的方法可以避免写一个新的类再去实例化的操作,可在json字符串转化为map对象时使用

new TypeToken<HashMap<Integer,Person>>(){
     
    }.getType()
@Test
publicvoidtest3(){
     
    Map<Integer,Person> personMap = new HashMap<>();
    personMap.put(1,new Person(1,"俊哥好帅"));
    personMap.put(2,new Person(2,"强哥也好帅"));
    Gson gson = new Gson();
    //把map集合转换成为json字符串
    String personMapJsonString = gson.toJson(personMap);
    System.out.println(personMapJsonString);
    //Map personMap2 = gson.fromJson(personMapJsonString,new PersonMapType().getType());
    
    Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString,new TypeToken<HashMap<Integer,Person>>(){
     }.getType());
    System.out.println(personMap2);
    Personp = personMap2.get(1);
    System.out.println(p);
    
}

你可能感兴趣的:(java,json,javascript)