zoukankan      html  css  js  c++  java
  • JSON的使用小结

      JSON中存储的是key:value,其实在编程的时候我们会遇到很多都是key:value的形式。比如:map,java对象(一个对象的一个属性只会有一个值),数据库中key:value对应着里面存储的一个数据,redis的本质就是key:value。所以你会发现key:value很有用。

    1.将任何形式的内容转换成key:value形式的字符串(观察输出),比如json文件。

    {
        "name": "Tom",
        "age" : 12,
        "book":{"1":"Math","2":"Chinese","3":"English"},
        "interest" : ["football","basketball"],
        "student" : {"name" :"Tom","age":22,"book":"String"}
        
     }

    到网上搜一下,有很多人都写了将.json文件转换成字符串的方式,再转换成JSONObject。目前只找到GSON,直接输入json文件的位置,直接输出一个类似于JSONObject的东西(还没仔细研究),其他的方法还没有找到。

    2.将string转换成JSONObject。

    package json;
    
    import java.awt.List;
    import java.util.ArrayList;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    
    
    public class TestJson {
    
        public static void main(String[] args) {
            //将JSON文件读取成字符串形式,目前还没有找到哪个好的方法直接转,网上都可以搜到。
            //GSON可以直接装,但是GSON的包跟这里的包又不一样
            
            Util fr = new Util();
            String str = fr.ReadFile("src/json1.json");
            //看看把json文件读取成字符串的形式。
            System.out.println(str.toString());
    
            //将字符串转换成JSONObject。通过JSONObject可以获取任何东西。
            //还可以遍历
            JSONObject student1 = JSON.parseObject(str);
            
            String name = (String) student1.get("name");
            //获取的是字符串。
            String book = student1.getString("book");
            //可以将string变成JSONObject
            JSONObject bookJson = JSON.parseObject(book);
            
            System.out.println(book);
            //这里获取的是JSONObject
            JSONObject bookObj = student1.getJSONObject("book");
            String b1 = bookObj.getString("1");
            String b2 = bookObj.getString("2");
            String b3 = bookObj.getString("3");
            System.out.println(b1+","+b2+","+b3);
            
            String interest = student1.getString("interest");
            
            JSONArray interestArr = student1.getJSONArray("interest");        
            String arr1 = interestArr.getString(0);
            String arr2 = interestArr.getString(1);
            System.out.println(arr1+","+arr2);
            //通过映射的方式。直接获得。
            JSONArray inArr = student1.getObject("interest", JSONArray.class);
            
            //如果value值是一个对象,可以直接映射成一个对象。
            Student stu = student1.getObject("student", Student.class);
            
            System.out.println(name);        
        
            System.out.println(interest);
            System.out.println(stu.toString());
            
    
        }
    
    }
    package json;
    
    import java.util.List;
    
    public class Student {
        
        public Student() {
            
        }
        public Student(String name, Integer age, String book) {
            this.name = name;
            this.age = age;
            this.book = book;
        
            
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        public String getBook() {
            return book;
        }
        public void setBook(String book) {
            this.book = book;
        }
        private String name;
        private Integer age;
        private String book;
        
        @Override
        public String toString() {
            return "Student [name=" + name + ", age=" + age + ", book=" + book
                     + "]";
        }
        
    
    } 


    问题:如果对象Student中包含有List<String> interest,怎么映射呢?对应的json中value是什么样式呢?如果您有相关的地址欢迎留言学习。

  • 相关阅读:
    选择器的使用总结
    突出展示
    京东轮播图的·实现方式
    jquery实现下拉菜单
    jquery实现淘宝动态图展示商品
    jquery查找子元素和兄弟元素
    调制解调
    同步异步串行并行
    Quartus ii 初学遇到的问题以及解决
    PLL
  • 原文地址:https://www.cnblogs.com/boywwj/p/6886465.html
Copyright © 2011-2022 走看看