JSON

来源:互联网 发布:黑暗之光披风升阶数据 编辑:程序博客网 时间:2024/06/14 12:35

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, 100null        e.g. nullboolean     e.g. true, falsearray       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 Wangid: 830166grade: 72.5Do you have a girlfriend? trueSubjects:AlgorithmInternetDatabaseJava

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.

原创粉丝点击