Json nedir ? Json Olusturma ve Java Uygulamasinda Json Kullanimi

Json nedir ?

JSON ( JavaScript Objects Notation ) XML’e alternatif olarakda düşünebileceğimiz programlama dilleri arasında veri gönderme / alma yöntemidir. XML e kıyasla daha rahat kullanım sunan JSON hem hız hemde kapladığı alanın az olması bakımından da öne çıkmaktadır.

JSON key – value (anahtar / değer) mantığından esaslanarak kullanım sunmaktadır. Örnek vermek istersek
name : cumhur , surname : çağatay , age : 28
yukarıdaki örneklerde “name , surname ve age” değerleri “key” lerdir. “cumhur, çağatay ve 28” değerleri ise “value” lardir yani değerler.

JSON Oluşturma:

Json dosyalarını basit bir şekilde txt dosyalarının içine oluşturabiliriz. Şimdi sade bir örnek yazalım.

 

{
name : cumhur,
surname : cagatay
age : 28
}

Yukarıda sade bir örnekle Json.txt dosyası içeriğini gösterdik. Şimdi de bir dizi içerisin olan kayıtların gösterimine bir bakalım:

{
"calisanlar":[
{
"name":"Cumhur",
"surname":"Çağatay"
},
{
"name":"Miya",
"surname":"Software"
},
{
"name":"Güray",
"surname":"Çağatay"
}
]
}

Yukarıda örneğimizdede calisanlar dizisi içerisinde name ve surname Key lerine baglı kayıtlar görünmektedir.

Sanırım bu 2 örnek sonrasında Json dosyasının hazırlanması hakkında akılda soru işaretleri kalmamıştır. (Konunun başında basitce yapılabildiğinden bahsetmiştik ).

Şimdide bu Json dosyalarını uygulamalarımızda nasıl kullanıcaz bunu bir örnekle inceleyelim.

 

Java uygulamasında Json Kullanımı:

Örneğimizi anlatmaya başlamadan önce ne yapacağımızdan bahsetmek istiyorum. Java Uygulamamız aracılığıyla basit bir kayıt dosyası (Json) oluşturucaz ve yine uygulamamız aracılığıyla bu dosyaya veriler gönderip verileri geri alıp kullanacağız.

Öncelikle Calisanlar adında bir pojo oluşturuyoruz.

package com.turkyazilimcilar.json;
/**
*
* @author Cumhur Cagatay
*/
public class Calisanlar {
private String name;
private String surname;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}

Pojo’muzu oluşturduktan sonra JSonControl Adında bir class oluşturuyoruz ve buraya kontrol kodlarımızı yazıyoruz.


package com.turkyazilimcilar.json;
import deneme.json.Deneme;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.json.JSONObject;
/**
*
* @author Cumhur Cagatay
*/
public class JsonControl {
public void jsonCreate() throws Exception {
JSONObject j = new JSONObject();
Calisanlar d = new Calisanlar();
d.setName("cumhur");
d.setSurname("cagatay");
d.setAge(28);
j.put("name", d.getName());
j.put("surname", d.getSurname());
j.put("age", d.getAge());
FileWriter writer = new FileWriter("D:\\turkyazilimcilar.json");
writer.write(j.toString());
writer.close();
}
public void jsonConvert() throws Exception {
try {
String line = null;
BufferedReader br = new BufferedReader(new FileReader("D:\\turkyazilimcilar.json"));
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line + '\n');
}
JSONObject jo = new JSONObject(sb.toString());
Calisanlar d = new Calisanlar();
d.setName(jo.getString("name"));
d.setSurname(jo.getString("surname"));
d.setAge(jo.getInt("age"));
//java objeleri uzerinden verileri cekme
System.out.println(d.getName());
System.out.println(d.getSurname());
System.out.println(d.getAge());
System.out.println("---------------------------------------------");
//Json objeleri uzerinden verileri cekme
System.out.println(jo.get("name"));
System.out.println(jo.get("surname"));
System.out.println(jo.get("age"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String args[]) throws Exception {
new JsonControl().jsonCreate();
new JsonControl().jsonConvert();
}
}

Yukarıdaki JSonControl class ında iki adet metodumuz var bunları inceleyelim.

JsonCreate ve JsonConvert metodları

JsonCreate() metodunda: JsonObject ve Calisanlar Objeleri oluşturduk. daha sonra bu calisanlar objesine set metodu aracılığıyla değer yükledik.

sonraki aşamada JsonObject‘ in “put” metodunu kullanarak Json dosyasına yazılacak olan degerleri ve keyleri belirledik.

(degerler calisanlar objesinin get metodları aracılığıyla alındı.)

son olarakta FileWriter sınıfının writer metodu kullanılarak Json dosyası belirttiğimiz dizinde oluşturulup içine değerler yazıldı.

JsonConvert() metodunda : BufferedReader sınıfı ile uygulamanın dizindeki dosyaya erişimini sağladık ve StringBuilder sınıfı ile bu verileri yarattığımız JSONObject e aktardık. daha sonra calisanlar objesi oluşturduk ve bu objenin setlerine JSONObject in getString metodu aracılığıyla Json dosyasındaki verileri set ettik. son olarakta ekranda bu verilerin gösterimi için 2 türlü kod tasarladık. birincisi java objesi üzerinden veriyi ekrana almak. diğeri ise JsonObject üzerinden veriyi ekrana almak için tasarlandı.

faydalı olması diliğiyle…

 CUMHUR ÇAĞATAY

About Cumhur Çağatay

Computer Engineer