最流行的JSON介绍与同JS转化和Java转化的方式 -JavaWeb篇

写在前面: 今天结束了JavaWeb阶段,收获了很多知识,接下来还需要继续努力,开始学习更多的框架与提升知识。

若觉得文章对你有帮助可以个点赞支持 ^ _ ^

如果你喜欢Java可以相互学习~

作者公众号:小白编码

什么是Json?

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json 的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这样就使得JSON 成为理想的数据交换格式。

  • json 是一种轻量级的数据交换格式。
  • 轻量级指的是跟xml 做比较。
  • 数据交换指的是客户端和服务器之间业务数据的传递格式。

Json格式如何定义:(在JS中)

json 是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。

Json格式:

var jsonObj = {
    
    "key1":123,
    "key2":"abc",
    "key3":true,
    "key4":[12,"abcd",false],
    "key5":{
        "key5_1":"JSON对象形式",
        "key5_2":123
    },
    "key6":[{
        "key6_1_1":"Json对象数组",
        "key6_1_2":121
    },{
        "key6_2_1":"arr_1",
        "key6_2_2":true
    }]
};

Json在Js中使用:

  • Json一般由Json对象形式存在或者Json字符串形式存在
  • 两个常用的方法:
  • JSON.stringify() 把json对象转化成json字符串
  • JSON.parse() 把json字符串转化成json对象
//把json对象转化成json字符串
var jsonObjStr = JSON.stringify(jsonObj);
 console.log(jsonObjStr);//控制台输出
控制台结果:{"key1":123,"key2":"abc","key3":true,"key4":[12,"abcd",false],"key5":{"key5_1":"JSON对象形式","key5_2":123},"key6":[{"key6_1_1":"Json对象数组","key6_1_2":121},{"key6_2_1":"arr_1","key6_2_2":true}]}
//把json字符串转化成json对象
 var jsonStrParse = JSON.parse(jsonObjStr);
 console.log(jsonStrParse);
控制台结果:
Object
key1: 123
key2: "abc"
key3: true
key4: Array(3)
0: 12
1: "abcd"
2: false
length: 3
__proto__: Array(0)
key5:
key5_1: "JSON对象形式"
key5_2: 123
__proto__: Object
key6: Array(2)
0:
key6_1_1: "Json对象数组"
key6_1_2: 121
__proto__: Object
1: {key6_2_1: "arr_1", key6_2_2: true}
length: 2
__proto__: Array(0)
__proto__: Object

Json在Java中使用:(javaBean与json互转)

这里json与java互转使用了(Gson的jar包)三种转化:

  • 先导入Gson的jar包gson-2.2.4.jar(add Libraries)添加依赖
  • 普通的互转
  • List与json的互转
  • Map与json的互转

首先创建JavaBean:(get,set,构造器,tostring自行添加)

public class Student {
    
    private Integer id;
    private String name;
}

普通的互转:

@Test
    public void test1(){
        //这里new一个Student
        Student student = new Student(1,"小白");
        //创建Gson实例
        Gson gson = new Gson();
        //toJson()可以把java对象转化成Json字符串
        String stuJsonStr = gson.toJson(student);
        System.out.println(stuJsonStr);
        // fromJson 把json 字符串转换回Java 对象
        // 第一个参数是json 字符串
        // 第二个参数是转换回去的Java 对象类型
        Student stuObj = gson.fromJson(stuJsonStr, Student.class);
        System.out.println(stuObj);
    }
控制台输出结果:
{"id":1,"name":"小白"}//Json字符串
Student{id=1, name='小白'}//Student对象

List与json的互转:

  @Test
    public void test2(){
        //创建一个StudentList
        List<Student> studentList = new ArrayList<>();
        //向list中添加两名学生
        studentList.add(new Student(1,"小白"));
        studentList.add(new Student(2,"小黑"));
        //实例化Gson对象
        Gson gson = new Gson();

        //将List转化成Json字符串
        String stuListJsonStr = gson.toJson(studentList);
        System.out.println(stuListJsonStr);

        //将Json字符串转化成List对象
        //第二个参数需要传入一个Type类型的形参,需要一个类集成Gson中的TypeToken
        //这里第二个参数我使用(匿名内部类演示)节省空间
        List<Student> list = gson.fromJson(stuListJsonStr,new TypeToken<List<Student>>(){}.getType());
        System.out.println(list);
        //这里过去list中第一个对象
        Student student = list.get(0);
        System.out.println(student);
    }
控制台结果:
[{"id":1,"name":"小白"},{"id":2,"name":"小黑"}]                 //这个是Json字符串打印
[Student{id=1, name='小白'}, Student{id=2, name='小黑'}]	   //这个是list集合打印
Student{id=1, name='小白'}								  //这个是打印list集合中第一个stu对象

Map与Json互转:

   @Test
    public void test3() {
        //实例化一个Map
        Map<Integer, Student> stuMap = new HashMap<>();
        //向map中存放两名Student
        stuMap.put(1, new Student(1, "小白"));
        stuMap.put(2, new Student(2, "小黑"));
        //实例化Gson
        Gson gson = new Gson();
        //将map对象转化成json字符串格式
        String stuMapJsonStr = gson.toJson(stuMap);
        System.out.println(stuMapJsonStr);
        //将json字符串转回Map对象
        //原理同上List
        Map<Integer, Student> josnToStuMap = gson.fromJson(stuMapJsonStr, new TypeToken<Map<Integer, Student>>(){}.getType());
        System.out.println(josnToStuMap);
        //获得map中第一个对象
        Student student = josnToStuMap.get(1);
        System.out.println(student);

    }
控制台结果:
[{"id":1,"name":"小白"},{"id":2,"name":"小黑"}]           //json字符串
[Student{id=1, name='小白'}, Student{id=2, name='小黑'}] //map对象
Student{id=1, name='小白'}							//map中第一个对象

最后:

以上内容就是简单的json的介绍和java与js将json互转的内容。

写的不好请见谅!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章