استفاده از JSON در Java
در این بخش چگونگی encoding و decoding اشیاء JSON در زبان برنامه نویسی Java را بررسی خواهیم کرد. قبل از شروع کار باید ماژول مورد نظر خود برای کار با JSON را نصب کنید. در این آموزش ما ماژول JSON.simple را نصب و مسیر فایل json-simple-1.1.1.jar به متغیر محیطی CLASSPATH اضافه کرده ایم.
انواع داده JSON در Java
در جدول زیر انواع داده هایی که در هنگام کار با JSON به یکدگیر تبدیل می شوند را مشاهده می کنید:
JSON | Java |
string | java.lang.String |
number | java.lang.Number |
true|false | java.lang.Boolean |
null | null |
array | java.util.List |
object | java.util.Map |
Encode کردن JSON در جاوا
در مثال زیر یک شیء JSON با استفاده از JSONObject که یک java.util.HashMap است، encode می شود.
1 2 3 4 5 6 7 8 9 10 11 | import org.json.simple.JSONObject; class JsonEncodeDemo { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name", "foo"); obj.put("num", new Integer(100)); obj.put("balance", new Double(1000.21)); obj.put("is_vip", new Boolean(true)); System.out.print(obj); } } |
خروجی کد فوق بعد از کامپایل:
1 | {"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"} |
مثال دیگر:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import org.json.simple.JSONObject; class JsonEncodeDemo { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name","foo"); obj.put("num",new Integer(100)); obj.put("balance",new Double(1000.21)); obj.put("is_vip",new Boolean(true)); StringWriter out = new StringWriter(); obj.writeJSONString(out); String jsonText = out.toString(); System.out.print(jsonText); } } |
خروجی کد فوق بعد از کامپایل:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import org.json.simple.JSONObject; class JsonEncodeDemo { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name","foo"); obj.put("num",new Integer(100)); obj.put("balance",new Double(1000.21)); obj.put("is_vip",new Boolean(true)); StringWriter out = new StringWriter(); obj.writeJSONString(out); String jsonText = out.toString(); System.out.print(jsonText); } } |
Decode کردن JSON در جاوا
در مثال زیر از JSONObject و JSONArray استفاده شده است که JSONObject یک java.util.Map است و JSONArray یک java.util.List بنابراین می توانیم عملیاتی که بر روی List ها و Map ها قابل انجامند را بر روی آن ها انجام دهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import org.json.simple.JSONObject; import org.json.simple.JSONArray; import org.json.simple.parser.ParseException; import org.json.simple.parser.JSONParser; class JsonDecodeDemo { public static void main(String[] args) { JSONParser parser = new JSONParser(); String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]"; try{ Object obj = parser.parse(s); JSONArray array = (JSONArray)obj; System.out.println("The 2nd element of array"); System.out.println(array.get(1)); System.out.println(); JSONObject obj2 = (JSONObject)array.get(1); System.out.println("Field \"1\""); System.out.println(obj2.get("1")); s = "{}"; obj = parser.parse(s); System.out.println(obj); s = "[5,]"; obj = parser.parse(s); System.out.println(obj); s = "[5,,2]"; obj = parser.parse(s); System.out.println(obj); }catch(ParseException pe) { System.out.println("position: " + pe.getPosition()); System.out.println(pe); } } } |
خروجی کد فوق بعد از کامپایل:
1 2 3 4 5 6 7 | The 2nd element of array {"1":{"2":{"3":{"4":[5,{"6":7}]}}}} Field "1" {"2":{"3":{"4":[5,{"6":7}]}}} {} [5] [5,2] |
هیچ نظری ثبت نشده است