مشخصات مقاله
-
4
-
0.0
-
8710
-
0
-
0
آموزش JSON در Java
JSON در زبان برنامه نویسی Java
این مبحث نحوه ی encode/decode کردن اشیا JSON در زبان قدرتمند شی گرای Java را شرح می دهد. برای parse اشیا JSON در زبان Java لازم است ماژول مربوطه را دانلود و سپس نصب نمایید. در این آموزش ما ماژول JSON.simple را دانلود و نصب می کنیم. برای این منظور مکان قرار گیری فایل json-simple-1.1.1.jar را به متغیر محیطی (environment variable) به نام CLASSPATH اضافه می کنیم.
نگاشت از JSON به Java و بالعکس
JSON.simple موجودیت های JSON را به معادل آن در Java و موجودیت های Java را به معادل های آن در JSON تبدیل می کند.
تبدیل شی JSON به معادل آن در Java (encode کردن شی JSON در Java)
در زیر یک مثال ساده را می بینید که در آن با استفاده از JSONObject که یک زیرکلاس از java.util.HashMap هست، شی JSON را به معادل آن در Java تبدیل می کنیم. لازم به ذکر است که در صورت استفاده از این روش، هیچ مرتب سازی (ordering) انجام نمی شود. اگر می خواهید المان ها به صورت دقیق مرتب سازی شوند، در آن صورت بایستی متد JSONValue.toJSONString ( map ) را با یک ordered map implementation نظیر java.util.LinkedHashMap را بکار ببرید.
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);
}
}
پس از اجرا و کامپایل، کد فوق خروجی زیر را تولید می کند:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
در زیر مثال دیگری را مشاهده می کنید که در آن شی JSON با استفاده از JSONObject تولید می شود:
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);
}
}
پس از اجرا و کامپایل، برنامه ی فوق خروجی زیر را بدست می دهد:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Decode شی JSON در Java
مثال زیر از JSONObject و JSONArray بهره می گیرد. JSONObject یک زیرکلاس (subclass) از java.util.Map و JSONArray زیرکلاسی از java.util.List است. بنابراین می توانید با عملیات متعارف Map یا List به آن ها دسترسی داشته باشید.
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);
}
}
}
پس از کامپایل و اجرا، برنامه ی فوق نتیجه ی زیر را برمی گرداند:
The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده بوده و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.