• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Java API for JSON Processing – JSON nesneleri oluşturmak

  • Posted by Kodedu
  • Categories backend, Genel, Uncategorized, Yazılar, Yazılım
  • Date 15 Mart 2013

json_logoJava Api for JSON Processing (JSON-P) , Java EE 7 ile birlikte gelecek olan ve halihazırda geliştirimi sürdürülen 353 numaralı (JSR-353) Java standardıdır. Kısaltma olarak JSON-P denmiş ama bu kısaltma JSON Padding ile karıştırılabilir olduğu için pekte uygun görünmüyor. Bu sebeple ilk bakışta kafa karışıklığına neden olabilir, ama ben yinede bu yazıda JSON-P kısaltmasını tercih edeceğiz.

RESTful web servislerinin indirgenemez yükselişi, JCP’nin bu sürece daha fazla meyil vermesini sağladı ve Java EE 7 içinde, JSON işlemek için bir standart oluşturulması sürecine girildi. XML teknolojileriyle uğraşanlar, XML işleme ve yönetme adına kullanılan Stax ve DOM teknolojilerine aşinadırlar. Java SE içinde XML veri değişim formati için, Stax ve DOM üzerine zaten genel kütüphaneler uzunca bir zamandır yer almakta. Şimdi ise, JSON-P ile birlikte XML için kullanılan Stax ve DOM yaklaşımları, benzer bir şekilde JSON için de getirilmiş olacak.

Yalnız JSON-P içinde Stax ve DOM temelinde kütüphaneler bulunurken, JAXB’a benzer şekilde Nesne<>JSON dönüşümünü üstelenecek Api’ler bulunmuyor. Halihazırda Json Binding işlemleri için Java ekosisteminde bulunan Jackson, Jettison gibi yazılımlar kullanılıyor. JAX-RS içinde örneğin bu işlemler, nesnenin önce XML biçimine dönüştürülmesi, ardından dönüştürülen XML verisinin JSON biçimine dönüştürülmesiyle mesele çözülüy or.

JSON-P projesine http://json-processing-spec.java.net/ adresinden erişebileceğiniz gibi, kütüphanelerin bulunduğu bağımlılığı aşağıdaki Maven dependency bileşeni üzerinden kullanabilirsiniz.

<dependency>
 <groupId>org.glassfish</groupId>
 <artifactId>javax.json</artifactId>
 <version>1.0-b04</version>
</dependency>

Şimdi sizlerle JSON-P ile nasıl JSON nesneleri oluşturulabileceğinizin örneklerini vermek istiyorum.

Basit bir JSON nesnesi { [ key ]:[ value ] , .. } formatında veriler kabul ederken, Basit bir JSON dizisi [ val1,val2, .. , val3 ] biçiminde veriler kabul etmektedir.

Örnek 1: Basit bir JSON nesnesi

JSON Biçimi

{
  "ad": "Fikret",
  "soyad": "Savaş",
  "yas": 25
}

JsonObject Karşılığı

JsonObject jsonObject1 =
        Json.createObjectBuilder()
                .add("ad", "Fikret")
                .add("soyad", "Savaş")
                .add("yas", 25)
        .build();

Örnek 2: Json nesnesi barındıran kompleks Json dizisi

JSON-P’ de bir JsonArray nesnesi, String, int, double, boolean, BigInteger, BigDecimal gibi türlerden bileşenler kabul edebilir. Bunlara ek olarak da, JsonValue arayüzü türünden nesneler de kabul eder. (Örn: JsonObject, JsonArray gibi.)

JSON Biçimi

[
  "A",
  5,
  6.3,
  false,
  30,
  {
    "ad": "Fikret",
    "soyad": "Savaş",
    "yas": 25
  }
]

JsonArray Karşılığı

JsonArray jsonArray1= Json.createArrayBuilder()
        .add("A") // String
        .add(5)   // int
        .add(6.3) // double
        .add(false)  // boolean
        .add(new BigInteger("30"))  // Big(Integer) | (Decimal)
        .add(jsonObject1)  // JsonValue
        .build();

Örnek 3: Json dizisi barındıran bir Json nesnesi

JSON Biçimi

{
  "ad": [
    "Emin",
    "Şahin"
  ],
  "soyad": "Demir"
}

JsonObject Karşılığı

JsonArray jsonArray2=Json.createArrayBuilder()
        .add("Emin").add("Şahin").build();

JsonObject jsonObject2 = Json.createObjectBuilder()
        .add("ad", jsonArray2)
        .add("soyad", "Demir")
        .build();

Örnek 4: Kompleks bir Json nesnesi

JSON Biçimi

{
  "ad": "Ersin",
  "soyad": "Çetinkaya",
  "yas": 25,
  "adres": {
    "sehir": "Bursa",
    "ulke": "Türkiye",
    "Pk": "33444"
  },
  "telefonlar": [
    "234234242",
    "345345354"
  ]
}

JsonObject Karşılığı

JsonObject jsonObject3 =
    Json.createObjectBuilder()
        .add("ad", "Ersin")
        .add("soyad", "Çetinkaya")
        .add("yas", 25)
        .add("adres",
              Json.createObjectBuilder()
                  .add("sehir", "Bursa")
                  .add("ulke", "Türkiye")
                  .add("Pk", "33444"))
        .add("telefonlar",
                      Json.createArrayBuilder()
                          .add("234234242")
                          .add("345345354"))
        .build();

Örneklere buradan erişebilirsiniz.

Tekrar görüşmek dileğiyle.

Tag:javaee7, json, json-p

  • Share:
author avatar
Kodedu

Previous post

Java EE Eğitimi Son Sürat Devam Ediyor
15 Mart 2013

Next post

Java API for JSON Processing – JSON nesneleri okumak ve yazmak
25 Mart 2013

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    3 Comments

  1. brk
    14 Mayıs 2015
    Cevapla

    link hatalı

    • Rahman Usta
      14 Mayıs 2015
      Cevapla

      Çalışıyor gibi duruyor. https://github.com/rahmanusta/JSON-P

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Dağıtık uygulama çatılarının karşılaştırılması (Hadoop, GridGain, Hazelcast, DAC) Bölüm II
28Kas2011
Webiner videosu : Javascript ve Rest iletişimi
27Eyl2012
Java EE 7 – Concurrency Utilities
10Eyl2013
Dekoratör Tasarım Kalıbı
15May2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.