zoukankan      html  css  js  c++  java
  • JSON总结(java篇)

    目录

    JSON简介
    JSON语法
    JSON值类型
    java中的用法
        准备工作
        JSON的使用
    

    正文
    JSON总结(java篇一)
    回到顶部
    JSON简介

    JSON(JavaScript Object Notation)
    是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
    

    回到顶部
    JSON语法

    数据在键值对中
    数据由逗号分隔
    花括号保存对象
    
    方括号保存数组
    回到顶部
    JSON值类型
    number(整数或浮点数)
    String(字符串,在双引号中)
    boolean(布尔值,true或false)
    array(数组,用方括号表示)
    Object(对象,在花括号中,例如javaScript对象)
    
    null
    

    回到顶部
    java中的用法
    准备工作

    在java中使用json的方法首先要导入第三方jar包,进入json主页http://json.org,然后下载java第三方包,这里我们使用JSON-java这个包。
    点击后进入github下载页面下载jar包。
    这里我使用的是maven项目,所以可以在http://maven.org中搜索JSON-java的坐标。
    在eclipse中创建maven项目,配置好pom.xml
    

    JSON的使用

    1. 使用Map集合创建JSON

      /**

      • 1 、使用Map创建json
        */
        public static void createJSONByMap() {
        Map<String, Object> map = new LinkedHashMap<String, Object>();
        map.put("name", "老王");
        map.put("age", 35);
        map.put("height", 1.73);
        map.put("major", new String[] { "理发", "挖掘机" });
        map.put("hasGirlFriend", false);
        map.put("car", null);
        JSONObject json = new JSONObject(map);
        System.out.println("方法名:createJSONByMap()---" + json);
        }

    运行结果:

    方法名:createJSONByMap()---{"major":["理发","挖掘机"],"name":"老王","hasGirlFriend":false,"age":35,"height":1.73}
    
    从结果可以看出,car的字段没有打印出来,说明当value为null时转换JSON后不会显示出来
    
    1. 使用javaBean创建JSON

    javaBean

    package com.hjw.maven.jsonTest;

    import java.util.Arrays;

    /**
    *@author hjw
    *@version 创建时间:2016年9月21日 上午11:23:51

    • TODO
      */
      public class Person {

      private String name;
      private int age;
      private double height;
      private String[] major;
      private boolean hasGirlFriend;

      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 double getHeight() {
      return height;
      }
      public void setHeight(double height) {
      this.height = height;
      }
      public String[] getMajor() {
      return major;
      }
      public void setMajor(String[] major) {
      this.major = major;
      }
      public boolean isHasGirlFriend() {
      return hasGirlFriend;
      }
      public void setHasGirlFriend(boolean hasGirlFriend) {
      this.hasGirlFriend = hasGirlFriend;
      }
      @Override
      public String toString() {
      return "Person [name=" + name + ", age=" + age + ", height=" + height
      + ", major=" + Arrays.toString(major) + ", hasGirlFriend="
      + hasGirlFriend + "]";
      }

    }

    /**
     * 2、通过javaBean创建json
     */
    public static void createJSONByBean() {
        Person person = new Person();
        person.setName("老王");
        person.setAge(35);
        person.setHasGirlFriend(false);
        person.setHeight(17.2);
        person.setMajor(new String[] { "厨师", "编程" });
        System.out.println("方法名:createJSONByBean()---" + new JSONObject(person));
    
    }
    
    方法名:createJSONByBean()---{"major":["厨师","编程"],"name":"老王","hasGirlFriend":false,"age":35,"height":17.2}
    
    1. 通过JSONObject创建JSON

      /**

      • 1、通过JSONObject来专家json
        */
        public static void createJSON() {
        JSONObject json = new JSONObject();
        Object objNull = null;
        json.put("name", "老王");
        json.put("age", 35);
        json.put("height", 1.73);
        json.put("major", new String[] { "理发", "挖掘机" });
        json.put("hasGrilFriend", false);
        System.out.println("方法名:createJSON1()---" + json);
        }

      方法名:createJSON()---{"hasGrilFriend":false,"major":["理发","挖掘机"],"name":"老王","age":35,"height":1.73}

    2. 读取文件创建JSONObject

      在maven项目src/main/resource中创建laowang.json文件,然后引入commons-io的maven坐标

    laowang.json
    {
    "hasGrilFriend": false,
    "major": [
    "理发",
    "挖掘机"
    ],
    "name": "老王",
    "age": 35,
    "height": 1.73
    }

    代码:

    /**
     * 4、读取文件获取json
     * 
     * @throws IOException
     */
    public static void createJsonByFile() throws IOException {
        File file = new File(JsonDemo.class.getResource("/laowang.json")
                .getFile());
        String content = FileUtils.readFileToString(file);
        JSONObject json = new JSONObject(content);
        System.out.println("name=" + json.getString("name"));
        System.out.println("age=" + json.getInt("age"));
        System.out.println("height=" + json.getDouble("height"));
        System.out.println("hasGirlFriend=" + json.getBoolean("hasGirlFriend"));
        System.out.print("major=[");
        for (Object str : json.getJSONArray("major")) {
            System.out.print(str + ",");
        }
        System.out.println("]");
    }
    

    运行结果:

    name=老王
    age=35
    height=1.73
    hasGirlFriend=false
    major=[理发,挖掘机,]
    
    1. 通过JSONObject创建json文件

      /**

      • 创建josn文件
      • @throws IOException
        */
        public static void createJsonFileByWriter() throws IOException {
        Map<String, Object> map = new LinkedHashMap<String, Object>();
        map.put("name", "老王");
        map.put("age", 35);
        map.put("height", 1.73);
        map.put("major", new String[] { "理发", "挖掘机" });
        map.put("hasGrilFriend", false);
        JSONObject json = new JSONObject(map);
        URL url=JsonDemo.class.getResource("/");
        String path=url.getPath();
        path=path.substring(0, path.indexOf("jsonTest"));
        File file = new File(path+"/jsonTest/src/main/resource/laowang1.json");
        if (!file.exists()) {
        file.createNewFile();
        }
        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        json.write(bw);
        bw.close();
        System.out.println("end");
        }

    代码运行后会自动在maven项目中的resource路径下生产一个名为laowang1.json的文件,其中jsonTest为项目名
    只要前进的方向正确,就算走得再慢,那也是在进步。

  • 相关阅读:
    L7-5 搞笑的表情包
    L7-6 神奇的验证码
    Fabric中的ACLs相关
    first-network
    关于MSP
    关于数字证书
    Linux命令学习笔记
    shell学习笔记
    区块链
    log的不同级别
  • 原文地址:https://www.cnblogs.com/jpfss/p/6777606.html
Copyright © 2011-2022 走看看