簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處虐先。
依賴
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
? ? ? ?一怨愤、應(yīng)用場景
? ? ? ?在編寫 java 代碼時,很多時候我們需要創(chuàng)建一個 json 字符串蛹批。比如在使用 java 代碼請求一個服務(wù)時撰洗,我們需要在 java 代碼中傳入一些參數(shù)篮愉,如 url 等,這樣的情況下差导,請求接口都會要求我們傳入一個 json 類型的參數(shù)试躏。
? ? ? ?此時,如果直接使用字符串構(gòu)造 json 對象也是可以的设褐,如下面這樣:
String jsonStr = "{\"name\":\"bubble\",\"age\":100,\"male\":true}";
? ? ? ?但這樣寫很不優(yōu)雅颠蕴,且會因?yàn)樽址械霓D(zhuǎn)義字符很多,容易混亂助析,甚至當(dāng) json 字符串很長時就很難保證所構(gòu)造的 json 字符串是否正確了犀被。
? ? ? ?二、解決方法
? ? ? ?對于上面描述的使用場景外冀,我們可以使用 JSONObject 和 JSONArray 來構(gòu)造 json 字符串寡键。下面通過幾個簡單的例子來展示它們的用法。
? ? ? ?1雪隧、當(dāng) json 中沒有涉及數(shù)組時
public class Main {
public static void main(String[] args) {
JSONObject student = new JSONObject();
student.put("name", "bubble");
student.put("age", 100);
student.put("male", true);
System.out.println(student.toString());
}
}
? ? ? ?通過執(zhí)行上述代碼西轩,可以看到構(gòu)造的 json 字符串為:
{"name":"bubble","age":100,"male":true}
? ? ? ?2、當(dāng) json 中涉及到數(shù)組時
public class Main {
public static void main(String[] args) {
JSONObject student1 = new JSONObject();
student1.put("name", "zhangsan");
student1.put("age", 15);
JSONObject student2 = new JSONObject();
student2.put("name", "lisi");
student2.put("age", 16);
JSONArray students = new JSONArray();
students.put(student1);
students.put(student2);
JSONObject classRoom = new JSONObject();
classRoom.put("students", students);
System.out.println(classRoom);
}
}
? ? ? ?通過執(zhí)行上述代碼脑沿,可以看到構(gòu)造的 json 字符串為:
{"students":[{"name":"zhangsan","age":15},{"name":"lisi","age":16}]}
? ? ? ?通過這兩個例子應(yīng)該知道如何使用 JSONObject 和 JSONArray 來構(gòu)造 json 字符串了藕畔。
上一篇:使用 Gson 實(shí)現(xiàn) Json 字符串和 Java 對象之間的相互轉(zhuǎn)換
下一篇:NLTK(一):英文分詞分句