"景先生毕设|www.jxszl.com

json详解和如何解析

2022-11-14 11:33编辑: www.jxszl.com景先生毕设
1、什么是JSON
(1)JSON(Java Script Object Notation)是一种轻量级的数据交换语言,以文本字符串为基础,且易于让人阅读。(注意:XML就是一个重量级的数据交换语言)

(2)和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,

(3)JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言

(4)JSON就是一串字符串 只不过元素会使用特定的符号标注。

2、JSON语法
(1){} 双括号表示对象

(2)[] 中括号表示数组

(3)"" 双引号内是属性或值

(4): 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

(5),逗号用来分隔属性或者对象

3、将一个对象构建成json数据
对象:属性:name=张三,sex=男,age= 20,score=78

(1)一个对象的json表示:

{“name”:”张三”,”sex”:”男”,”age”:20,”score”:78}

Student stu1 = new Student("张三", "男", 19, 78.5);        
String js = JSON.toJSONString(stu1);
System.out.println(js);



1.com.google.gson.Gson用法
toJson(Object obj)方法:将对象obj序列化,转化为Json格式的字符串;

fromJson(String json, Class<T> classOfT)方法:反序列化,将Json格式的字符串转为指定类型的对象;

示例:

复制代码
import com.google.gson.Gson;

public class GSONTest {
    public static void main(String[] args) {
        Gson gson = new Gson();
        //{"id":1001", "name":"JSON ", "description":"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式"};
           String json = "{\"id\":\"1001\", \"name\":\"JSON \", \"description\":\"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式\"}";
        Book book = gson.fromJson(json, Book.class);//将 json 格式的字符串转变为Book类对象
        System.out.println(book);
        System.out.println(gson.toJson(book));//将Book类对象转变为 json 字符串
    }

    static class Book {
        private String id;
        private String name;
        private String description;

        public Book(String id, String name, String description) {
            this.id = id;
            this.name = name;
            this.description = description;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        @Override
        public String toString() {
            return "Book{" +
                    "id='" + id + '\'' +
                    ", name='" + name + '\'' +
                    ", description='" + description + '\'' +
                    '}';
        }
    }
}
 
 2.com.alibaba.fastjson.JSON用法
fastJson对于json格式字符串的解析常用的有三个类:

JSON:fastJson的入口类

JSONObject:fastJson提供的json对象,继承JSON。

JSONArray:用于解析json数组,继承JSON。

主要方法:

  parseObject(String text, Class<T> clazz) 方法:将json格式字符串转化为指定类的对象

  parseArray(String text, Class<T> clazz) 方法:将json格式字符串转化为指定类型的ArrayList集合

  toJSONString(Object object) 方法:将对象序列化,转化为json格式字符串

示例:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;

public class FastJsonTest {
    public static void main(String[] args) {
        String json = "{\"id\":\"1001\", \"name\":\"JSON \", \"description\":\"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式\"}";
        Book book = JSON.parseObject(json, Book.class);
        System.out.println(book);
        System.out.println(JSON.toJSONString(book));

        Book book1 = JSONObject.parseObject(json, Book.class);
        System.out.println(book1);
        System.out.println(JSONObject.toJSONString(book1));
        //"["a","b","c","d","e"]";
           String jsonArr = "[\"a\",\"b\",\"c\",\"d\",\"e\"]";
        List<String> jsonArray = JSONArray.parseArray(jsonArr, String.class);
        System.out.println(jsonArray);
        System.out.println(JSONArray.toJSONString(jsonArray));


    }

    static class Book {
        private String id;
        private String name;
        private String description;

        public Book(String id, String name, String description) {
            this.id = id;
            this.name = name;
            this.description = description;
        }

        public Book() {
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        @Override
        public String toString() {
            return "Book{" +
                    "id='" + id + '\'' +
                    ", name='" + name + '\'' +
                    ", description='" + description + '\'' +
                    '}';
        }
    }
}
原文链接:http://www.jxszl.com/biancheng/JAVA/81318.html