Java ile JSON
Bu bölüm, Java programlama dili kullanılarak JSON nesnelerinin nasıl kodlanacağını ve kodunun nasıl çözüleceğini kapsar. JSON için Java ile programlamaya başlamak için ortamı hazırlayarak başlayalım.
Çevre
Java kullanarak JSON'u kodlamaya ve kodunu çözmeye başlamadan önce, mevcut JSON modüllerinden herhangi birini yüklemeniz gerekir. Bu eğitim için JSON.simple'ı indirip kurduk ve konumunu ekledik.json-simple-1.1.1.jar CLASSPATH ortam değişkenine dosya.
JSON ve Java varlıkları arasında eşleme
JSON. Basit, kod çözme veya ayrıştırma sırasında varlıkları sol taraftan sağ tarafa eşler ve kodlama sırasında varlıkları sağdan sola eşler.
JSON | Java |
---|---|
dizi | java.lang.String |
numara | java.lang.Number |
doğru | yanlış | java.lang.Boolean |
boş | boş |
dizi | java.util.List |
nesne | java.util.Map |
Kod çözme günü, varsayılan beton sınıfı java.util.List olan org.json.simple.JSONArray ve varsayılan beton sınıfı java.util.Map olduğunu org.json.simple.JSONObject .
Java'da JSON kodlama
Aşağıda, java.util.HashMap'in bir alt sınıfı olan Java JSONObject kullanarak bir JSON nesnesini kodlamak için basit bir örnek verilmiştir. Sipariş verilmez. Öğelerin katı bir şekilde sıralanmasına ihtiyacınız varsa, java.util.LinkedHashMap gibi sıralı harita uygulamasıyla JSONValue.toJSONString (harita) yöntemini kullanın.
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);
}
}
Yukarıdaki programı derlerken ve yürütürken aşağıdaki sonuç üretilecektir -
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Aşağıda, Java JSONObject kullanarak bir JSON nesnesi akışını gösteren başka bir örnek verilmiştir -
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);
}
}
Yukarıdaki programı derlerken ve yürütürken, aşağıdaki sonuç oluşturulur -
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Java'da JSON kodunu çözme
Aşağıdaki örnek, JSONObject ve JSONArray JSONObject bir java.util.Map ve JSONArray bir java.util.List olduğunda, bunlara Map veya List'in standart işlemleriyle erişebilirsiniz.
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);
}
}
}
Yukarıdaki programı derlerken ve çalıştırırken, aşağıdaki sonuç üretilecektir -
The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]