JSON

out

JSON


What is JSON?
Here is a JSON.

{
  "name": "Shuai Wang",
  "id": "1240031",
  "subject": [
    "Algorithm",
    "Internet",
    "Database",
    "Java"
  ],
  "grade": 72.5,
  "has_girlfriend": true,
  "car": null
}

JSON(JavaScript Object Notation) is a light-weight data-interchange format. It is easy for human to read and write. It is also easy for computer to parse and generate. It is just a text format, which is language independent. (JSON official website)

How to write a JSON?
A JSON actually is a collection of key/value pairs. A JSON object starts with { and ends with }. Those key/value pairs are seperated by a comma.

Data Type
There are some types that “value” could have.

String      e.g. "name","Shuai Wang"
number      e.g. 72.5, 100
null        e.g. null
boolean     e.g. true, false
array       e.g. ["Internet","Algorithm","Java","Database"]
object      e.g. {,,,}

All keys should be String type.

How to create a JSON object with Java?

  1. Create a maven project.
  2. Add JSON dependency.
  3. Use JSONObject class to create a JSON object.

Get project code.

I strongly suggest you to create a JSON object using Java bean. The code is here:

Student.java

package com.wangshuai.Json2.bean;

public class Student {
    private String name;
    private String id;
    private double grade;
    private boolean has_girlfriend;
    private Object car;
    private String[] subject;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public double getGrade() {
        return grade;
    }
    public void setGrade(double grade) {
        this.grade = grade;
    }
    public boolean isHas_girlfriend() {
        return has_girlfriend;
    }
    public void setHas_girlfriend(boolean has_girlfriend) {
        this.has_girlfriend = has_girlfriend;
    }
    public Object getCar() {
        return car;
    }
    public void setCar(Object car) {
        this.car = car;
    }
    public String[] getSubject() {
        return subject;
    }
    public void setSubject(String[] subject) {
        this.subject = subject;
    }   
}

JSONObjectsSample.java

package com.wangshuai.Json2;
import org.json.JSONObject;
import com.wangshuai.Json2.bean.Student;

public class JSONObjectSample {

    public static void main(String[] args) {
        createJsonByJavaBean();
    }

    private static void createJsonByJavaBean() {
        Student wangshuai = new Student();
        Object nullObj = null;

        wangshuai.setCar(nullObj);
        wangshuai.setGrade(72.5);
        wangshuai.setHas_girlfriend(true);
        wangshuai.setId("1240031");
        wangshuai.setName("Shuai Wang");
        wangshuai.setSubject(new String[]{"Algorithm", "Internet", "Database", "Java"});

        JSONObject ws = new JSONObject(wangshuai);

        System.out.println(ws.toString());
    }   
}

Ouput

{"has_grilfriend":true,"subject":["Algorithm","Internet","Database","Java"],"grade":72.5,"name":"Shuai Wang","id":"1240031"}

We can also create a JSON object using Map.

package com.wangshuai.Json2;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;

public class JSONObjectSample {

    public static void main(String[] args) {
        createJsonByMap();
    }

    private static void createJsonByMap() {
        Map<String, Object> wangshuai = new HashMap<String, Object>();
        Object nullObj = null;

        wangshuai.put("name","Shuai Wang");
        wangshuai.put("id", "1240031");
        wangshuai.put("grade", 72.5);
        wangshuai.put("has_grilfriend", true);
        wangshuai.put("car", nullObj);
        wangshuai.put("subject", new String[]{"Algorithm", "Internet", "Database", "Java"});

        JSONObject ws = new JSONObject(wangshuai);
        System.out.println(ws.toString());
    }
}

Ouput

{"has_grilfriend":true,"subject":["Algorithm","Internet","Database","Java"],"grade":72.5,"name":"Shuai Wang","id":"1240031"}

We can also directly create a JSON object with JSONObject class.

package com.wangshuai.Json2;
import org.json.JSONObject;

public class JSONObjectSample {

    public static void main(String[] args) {
        createJson();
    }

    private static void createJson() {
        JSONObject wangshuai = new JSONObject();
        Object nullObj = null;

        wangshuai.put("name","Shuai Wang");
        wangshuai.put("id", "1240031");
        wangshuai.put("grade", 72.5);
        wangshuai.put("has_grilfriend", true);
        wangshuai.put("car", nullObj);
        wangshuai.put("subject", new String[]{"Algorithm", "Internet", "Database", "Java"});

        System.out.println(wangshuai.toString());
    }
}

Ouput

{"has_grilfriend":true,"subject":["Algorithm","Internet","Database","Java"],"grade":72.5,"name":"Shuai Wang","id":"1240031"}

How to parse a JSON file?
We use a third-party File I/O processing package.
ReadJson.java

package com.wangshuai.Json2;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.json.JSONArray;
import org.json.JSONObject;

public class ReadJson {

    public static void main(String[] args) throws IOException {
        File jsonFile = new File(ReadJson.class.getResource("/com/wangshuai/Json2/jsonfile/wangshuai.json").getFile());
        String content = FileUtils.readFileToString(jsonFile);
        JSONObject ws = new JSONObject(content); 

        System.out.println("name: "+ws.getString("name"));
        System.out.println("id: "+ws.getString("id"));
        System.out.println("grade: "+ws.getDouble("grade"));
        System.out.println("Do you have a girlfriend? "+ws.getBoolean("has_girlfriend"));
        if(!ws.isNull("car")){
            System.out.println("Do you has a car? "+ws.getJSONObject("car"));
        }
        JSONArray subjects = ws.getJSONArray("subject");
        System.out.println("Subjects:");
        for(int i=0;i<subjects.length();i++){
            System.out.println(subjects.get(i));
        }
    }
}

output

name: Shuai Wang
id: 830166
grade: 72.5
Do you have a girlfriend? true
Subjects:
Algorithm
Internet
Database
Java

The resource of all third-party packages
You can find JSON and Commons-io dependencies here.

最后再说两句(PS)
JSON Editor Online and some knowledges about maven. Check it out.

As the org.json doesn’t implement the functionality of generating JSON file, I don’t tell you how to generate a JSON file from a JSON Object. But we can use another better way to implement that, which is GSON. We talk about it later.

Welcome questions always and forever.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值