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?
- Create a maven project.
- Add JSON dependency.
- 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.
- Json
- JSON
- JSON
- JSON
- json
- JSON
- JSON
- json
- Json
- json
- JSON
- json
- json
- JSON
- json
- JSON
- JSON
- json
- [LintCode 382]给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
- 如何在Hbuilder中创建一个web项目?
- 浏览器的跨域问题以及解决方案
- 嵌入式Linux驱动笔记(一)------第一个LED驱动程序
- spring boot热部署
- JSON
- ConcurrentHashMap详细分析
- 反射:使用反射调用构造器创建对象
- 使用 svm+hog 训练,检测手写数字
- JAVA学习中的心得和小程序
- 小白学分布式程序开发3-分布式系统的数据一致性问题
- SpringBoot学习:使用spring-boot-devtools进行热部署
- equals 与 ==
- 后端api之路——初窥门径