先看下什么是json,来自百度百科
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON 语法规则
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
-
对象表示为键值对
-
数据由逗号分隔
-
花括号保存对象
-
方括号保存数组
在java使用json需要导入jar包http://www.pc6.com/softview/SoftView_468549.html
下面看代码,通过三种方式生产json
JsonTest.java
import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; /** { "password": 666666, "major": ["理发", "挖掘机"], "has_gridfriend": false, "comment": "这是注释", "account": 123456 } */ public class JsonTest { public static void main(String[] args) throws JSONException { createJson(); createJsonByMap(); //推荐下面这种方式 createJsonByJavaBean(); } private static void createJsonByMap() { Map<String, Object> map = new HashMap<>(); JSONObject jsonObject = new JSONObject(); Object nullObj = null; map.put("account", 123456); map.put("password", 666666); map.put("major", new String[]{"理发", "挖掘机"}); map.put("has_gridfriend", false); map.put("car", nullObj); map.put("comment", "这是注释"); System.out.println(new JSONObject(map).toString()); } private static void createJson() { JSONObject jsonObject = new JSONObject(); Object nullObj = null; try { jsonObject.put("account", 123456); jsonObject.put("password", 666666); jsonObject.put("major", new String[]{"理发", "挖掘机"}); jsonObject.put("has_gridfriend", false); jsonObject.put("car", nullObj); jsonObject.put("comment", "这是注释"); } catch (JSONException e) { e.printStackTrace(); } System.out.println(jsonObject.toString()); } public static void createJsonByJavaBean() { Bean bean = new Bean(); bean.setName("老王"); bean.setAge(20); bean.setAddress("东土大唐"); bean.setSex("男"); System.out.println(new JSONObject(bean).toString()); } }
Bean.java
public class Bean { private String name; private int age; private String sex; private String address; public Bean() { } 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }