zoukankan      html  css  js  c++  java
  • Json简介






    Book实体类

    public class Book {
        private String category;
        private String tittle;
        private String author;
        private String year;
        private String price;
    
        public Book() {
        }
    
        public String getCategory() {
            return category;
        }
    
        public void setCategory(String category) {
            this.category = category;
        }
    
        public String getTittle() {
            return tittle;
        }
    
        public void setTittle(String tittle) {
            this.tittle = tittle;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public String getYear() {
            return year;
        }
    
        public void setYear(String year) {
            this.year = year;
        }
    
        public String getPrice() {
            return price;
        }
    
        public void setPrice(String price) {
            this.price = price;
        }
    }
    

    Person实体类

    import java.util.List;
    
    public class Person {
        private String name;
        private int age;
        private List<Integer> scores;
    
        public Person() {
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public List<Integer> getScores() {
            return scores;
        }
    
        public void setScores(List<Integer> scores) {
            this.scores = scores;
        }
    }
    
    

    book.json

    [
      {"category":"科幻","tittle":"三体","author":"lisi","year":"2018/01/05","price":"28"},
      {"category":"科幻","tittle":"四体","author":"lisi","year":"2018/01/05","price":"28"}
    ]
    

    OrgJson进行解析




    Gson

    因为之前用过Google的Gson所以在这里给出代码

    import com.google.gson.Gson;
    import com.google.gson.JsonObject;
    import com.google.gson.reflect.TypeToken;
    
    import java.io.File;
    import java.io.FileReader;
    import java.util.Arrays;
    import java.util.List;
    
    public class JsonTest {
    
        public static void main(String[] args) {
    
            testJsonObject();
            testJsonFile();
        }
    
        public static void testJsonObject(){
            //构造对象
            Person p = new Person();
            p.setName("zhangsan");
            p.setAge(18);
            p.setScores(Arrays.asList(60,70,80));
    
            //从java对象到json字符串
            Gson gson = new Gson();
            String str = gson.toJson(p);
            System.out.println(str);
    
            //从json字符串到Java对象
            Person p1 = gson.fromJson(str,Person.class);
            System.out.println(p1.getName());//zhangsan
            System.out.println(p1.getAge());//18
            System.out.println(p1.getScores());//[60,70,80]
    
            //调用GSON的JsonObject
            JsonObject json = gson.toJsonTree(p).getAsJsonObject();//将json解析为一棵树
            System.out.println(json.get("name"));//"zhangsan"
            System.out.println(json.get("age"));//18
            System.out.println(json.get("scores"));//[60,70,80]
    
    
        }
    
        public static void testJsonFile(){
        //从json文件进行加载并重构为java对象
            Gson gson = new Gson();
            File file = new File("book.json");
            try(FileReader reader = new FileReader(file)){
                List<Book> books = gson.fromJson(reader,new TypeToken<List<Book>>(){}.getType());
                for(Book book:books){
                    System.out.println(book.getAuthor()+" "+book.getTittle());
                }
            }catch (Exception e){
                e.printStackTrace();
            }
    
        }
    
    }
    
    

    Jackson



    不一样的烟火
  • 相关阅读:
    201521123055 《Java程序设计》第7周学习总结
    201521123055 《Java程序设计》第6周学习总结
    201521123055 《Java程序设计》第5周学习总结
    201521123055《Java程序设计》第1周学习总结
    201521123055 《Java程序设计》第2周学习总结
    Qt 学习:数据库操作
    Attempting to add QLayout "" to MainWindow "", which already has a layout
    C++所有符号
    QT中QWidget、QDialog及QMainWindow的区别
    C++ > 类(Classes)的定义与实现
  • 原文地址:https://www.cnblogs.com/cstdio1/p/12234374.html
Copyright © 2011-2022 走看看