SlideShare a Scribd company logo
MongoDB - JSON'a Genel Bakış
DeepLab : Teknolojiler
ML/DL/CV Odaklı
• Teknolojiler
– Go, Python, C/C++, Rust, C#
– PyTorch, TensorFlow, Keras, scikit-learn
• Web, Mobile, IoT/Edge ve Back-End olarak…
– OpenCV
– … ve farklı onlarca araç-gereç…
• Databases
– SQL Server, Oracle, PostgreSQL
– MongoDB, Redis, Cassandra
• Distributed Systems
– Distributed Databases
– Distributed Deep Learning
JSON
JSON : JavaScript Object Notation
Cihan Özhan | DeepLab.co | Founder & AI Engineer, Mentor
JSON & BSON
JSON
JSON Nedir?
• JSON, JavaScript Object Notation anlamına gelir.
• Official Website : http://json.org
• Online JSON Parser : http://json.parser.online.fr/beta
• Bu format Douglas Crockford tarafından belirlendi.
• JSON dosya adı uzantısı .json’dur.
• JSON Internet Media Type : ‘application/json’
• The Uniform Type Identifier is public.json
• JSON
– Insan tarafından okunabilir.
– Veri depolamak e değiş-tokuş etmek için bir sözdizimidir.
– Dil bağımsız bir veri formatıdır.
– “Self-Describing” ve anlaşılması kolay.
– JSON JavaScript sözdizimi kullanır ama JSON format metin tabanlıdır. XML gibi…
• Okunabilir ve veri formatı olarak her programlama diliyle kullanılılabilirdir.
• API ve Config için kullanılır.
JSON Sözdizimi
• Veriler name/value ikilisinde oluşur.
• Veriler virgülle ayrılmıştır.
• Küme araçları(Curly Braces) nesneleri tutar.
• Köşeli parantezler(Square Brackets) dizileri tutar.
• JSON'un yaygın bir kullanımı, verileri bir web sunucusundan okumak ve bir web sayfasında
görüntülemektir.
JSON vs. XML
• JSON daha kısadır.
• JSON, bitiş etiketini kullanmaz.
• JSON dizileri destekler.
• JSON'un görüntüleme yeteneği yok.
• Native nesne desteği.
• Her ikisi de 'kendi kendini tanımlayan', yani değerlerin adlandırıldığı anlamına gelir.
• Her ikisi de 'insan tarafından okunabilir’.
• Her ikisi de hiyerarşiktir. (yani değerleri bir başka değer içinde tutabilirsiniz.)
• Her ikisi de ayrıştırılabilir ve birçok programlama dili tarafından kullanılabilir.
• JSON daha az ayrıntılıdır, bu nedenle insanlar için kesinlikle daha hızlı okunabilir.
• JSON, JavaScript'teki eval() prosedürü kullanılarak basit bir şekilde ayrıştırılabilir.
• JSON, {her öğenin kendi adına sahip olmadığı} dizileri içerir.
• Hem JSON hem de XML bir XMLHttpRequest ile getirilebilir
JSON vs. XML
• XML dizi verilerini desteklemez.
• XML, JSON'dan biraz daha karmaşıktır.
• XML, bir öğenin başında ve sonunda bir etiket adı bulunan açılı parantezler kullanır:
– JSON, adı yalnızca öğenin başında olan dalgalı parantezler kullanır.
• XML'de bir öğe için istediğiniz herhangi bir adı kullanabilirsiniz, JSON'da javascript'ten ayrılmış(reserved)
kelimeleri kullanamazsınız.
• XML, bir biçimlendirme dili olduğu için verileri görüntüleme yeteneği sağlar.
• Herhangi bir veri türü kavramı sağlamaz. Tür bilgisi eklemek için XML Şemasına güvenilmelidir.
JSON vs. XML
• İkisi de basit ve açık.
• Her ikisi de unicode'u destekler. Dolayısıyla Internationalization hem JSON hem de XML tarafından
desteklenir.
• Her ikisi de kendi kendini tanımlayan verileri temsil eder.
• Her ikisi de birlikte çalışabilir veya dilden bağımsızdır.
JSON kullanımları
• JSON, tarayıcı uzantısı ve web siteleri içeren JavaScript tabanlı uygulama yazarken kullanılır.
• JSON formatı, yapılandırılmış verileri ağ bağlantısı üzerinden seri hale getirmek(serialization) ve
iletmek için kullanılır.
• JSON, esas olarak sunucu ve web uygulaması arasında veri iletmek için kullanılır.
• Web Servisler ve API'ler, herkese açık veriler sağlamak için JSON biçimini kullanır.
• JSON, modern programlama dilleriyle kullanılabilir.
BSON
{Binary JSON}
BSON
• BSON : Binary JSON
• http://bsonspec.org/
• Lightweight
– Uzamsal(spatial) ek yükü minimumda tutmak, özellikle ağ üzerinden kullanıldığında herhangi bir
veri gösterimi formatı için önemlidir.
• Traversable
– BSON is designed to be traversed easily. This is a virtual property in its role as the primary data
representation for MongoDB.
• Efficient
– Encoding data to BSON and decoding from BSON can be performed very quickly in most
languages due to the use of C data types.
MongoDB BSON’ı Nasıl Kullanır?
• MongoDB, “dökümanlar" için veri depolama ve ağ aktarım biçimi olarak BSON'u kullanır.
• Basit veri yapılarını ve ilişkisel dizileri(associative arrays) temsil etmek için binary bir formdur.
JSON Veri Tipleri
• Object
• Array
• Value
• String
• Number
Value
{...}, [...], 2, "one", true, null
Object
{“firstname”: ”Jane”, ”lastname": ”Doe”}
Array
[{”firstname”: ”Jane”, ”lastname": ”Doe”},
{”firstname”: ”John”, ”lastname": ”Jones”}]
Squiggles, Squares, Colons, Commas
• Dalgalı parantezler 'kapsayıcı' görevi görür.
– {...}
• Köşeli parantezler dizileri tutar.
– [...]
• İsimler ve değerler iki nokta üst üste ile ayrılır.
– name:value
• Dizi öğeleri virgülle ayrılır.
– [member1, member2]
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
JSON Döküman Doğrulama
• JSON’da Well-Formedness kontrolü
• JSON Dökümanlarını JSON Şemalarına karşı doğrulama
• JSON Şemalarını Şartname’ye(Specification) göre doğrulama
Well-Formedness Kontrolü
• JSON belgesinin JSON belirtimine uyup uymadığını kontrol edin!
• ECMA-404 JSON Veri Değişim Standardı
– http://json.org
Anahtardan sonra ':’ olmalı
',’ olmalı
',’ olmamalı
“ ile kapanmalı
'}’ olmalı
JSON Schema
JSON Şeması, JSON dökümanlarına açıklama eklemenize ve bunları
doğrulamanıza olanak tanıyan bir sözlüktür.
http://json-schema.org
JSON Schema Tanımlamak
• XML Şeması, RNG veya DTD'ye benzer
• JSON ile yazıldı
• JSON verilerinin yapısını tanımlamak için kullanılır
{”type”: ”string”} ”I'm a string”
JSON Schema JSON Instance
JSON Schema JSON Instance
JSON Schema JSON Instance
JSON Schema Tanımlamak
• Şema tanımının ilk seviyede olması tavsiye edilir:
"$schema": "http://json-schema.org/draft-07/schema#"
• JSON Schema kullanılan versiyonlar:
– Draft 4
– Draft 6
– Draft 7
– Draft 8
JSON Schema ile Doğrulamak
• JSON örneğinin tanımlara uyup uymadığını kontrol edin:
Beklenen string, gelen integer
[lastname] gerekirken [familyname]
Geçersiz email adresi
JSON Şemasını İlişkilendir
• Şemayı JSON Dökümana ilişkilendir.
– Doğrudan JSON dökümanında $schema özelliğini kullanarak
– Uygulama ayarlarında
JSON Schema Doğrulamak
• well-formedness Kontrolü
• The Internet Engineering Task Force(IETF) Specification’e Göre Doğrulamak
Schematron ile JSON
Doğrulamak
• JSON Şemasını kullanarak JSON yapısını belirtin.
• Schematron kullanarak ortak kısıtlamalar ve özel kurallar.
• https://schematron.com
JSON için Schematron
• Kuralları belirlemek için XPath kullanın/
JSONPath Kullanarak
Schematron
• Schematron, XML/XPath bakış açısı ile JSON için yeniden tasarlandı.
https://github.com/amer-ali/jsontron
Querying ve Transforming
• JSON Pointer, JSONiq veya XPath kullanarak sorgulamak
• JSON'u JavaScript, XSLT, XQuery kullanarak dönüştürmek
JSON Pointer
Bir JSON belgesindeki belirli bir değeri tanımlamak için kullanılır.
#/employees/0/email
İlk çalışan emaili ile eşleşir.
Specification
https://tools.ietf.org/html/rfc6901
JSONiq
JSON için bir sorgu ve işleme dili
www.jsoniq.org
XPath
• XML dökümanlarını sorgulamak için güçlü dildir.
• JSON için de uygulamalar tarafından benimsenmiştir.
/employees[2]/email
2. çalışan emaili ile eşleşir
JSON'u JavaScript ile işleyin
• JSON belgelerini işlemenin en popüler yolu.
• Birden çok library
var json = '{"name":”John Doe”, "age":42}’;
obj = JSON.parse(json);
console.log(obj.name); // Result John Doe
console.log(obj.age); // Result 42
XSLT/XQuery Kullanarak
Dönüştürme
• JSON dökümanlarını farklı biçimlere dönüştürür.
• JSON dökümanları işlemek için farklı fonksiyonlar :
– json-doc($href as xs:string?) as item()?
– json-to-xml($json-text as xs:string?) as document-node()?
Converting JSON Documents
• JSON'dan XML'e ve XML'den JSON’a
• XSLT kullanarak dönüştürme
• Online Converters
JSON'dan XML'e Dönüştürme Ayrıntıları
XML to JSON
XML'den JSON'a Dönüştürme
Ayrıntıları
• XML nitelikleri özelliklere dönüştürülür:
<person id="1"/> {"person": {"id": 1}}
• Aynı ada sahip birden çok öğe bir diziye dönüştürülür.
<person/> <person/> "person": ["",""]
• Karışık içerikteki metin bir #text özelliğine dönüştürülür.
<p>This is an <b>example</b>!</p>
p": {"#text": "This is an", "b": "example", "#text1": "!"}
XSLT Kullanarak Dönüştürme
• XSLT kullanarak XML'yi JSON'a dönüştüren library
– https://github.com/bramstein/xsltjson
• JSON için XSLT Spesifikasyonu
– http://www.w3.org/TR/xslt-30/#json
MongoDB - JSON'a Genel Bakış
JSON API
• https://jsonapi.org/
• https://jsonplaceholder.typicode.com/

More Related Content

PPTX
MongoDB Overview
PPTX
MongoDB - NoSQL Overview
PPTX
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
PPTX
Mobil Uygulama Güvenliği (Mobile Security)
PDF
MicroService Architecture
PPTX
Go Programlama Dili - Seminer
PDF
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
PPTX
Software architecture for high traffic website
MongoDB Overview
MongoDB - NoSQL Overview
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
Mobil Uygulama Güvenliği (Mobile Security)
MicroService Architecture
Go Programlama Dili - Seminer
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Software architecture for high traffic website

What's hot (20)

PDF
Decompose your monolith: Six principles for refactoring a monolith to microse...
PPTX
Introduction to Microservices
PDF
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
PDF
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
PDF
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PDF
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
PDF
OAuth2 and Spring Security
PPTX
Microservices Architecture Part 2 Event Sourcing and Saga
PPTX
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
PDF
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
PDF
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
PPTX
Monoliths and Microservices
PDF
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
PPSX
Big Data Redis Mongodb Dynamodb Sharding
PPTX
Microservices Part 3 Service Mesh and Kafka
PDF
React.js Web Programlama
PPTX
Microservices
PPTX
Introducción a Cosmos DB
PPTX
4. 대용량 아키텍쳐 설계 패턴
PPTX
Azure devops
Decompose your monolith: Six principles for refactoring a monolith to microse...
Introduction to Microservices
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
OAuth2 and Spring Security
Microservices Architecture Part 2 Event Sourcing and Saga
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Monoliths and Microservices
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
Big Data Redis Mongodb Dynamodb Sharding
Microservices Part 3 Service Mesh and Kafka
React.js Web Programlama
Microservices
Introducción a Cosmos DB
4. 대용량 아키텍쳐 설계 패턴
Azure devops
Ad

Similar to MongoDB - JSON'a Genel Bakış (19)

PPT
Arama Sistemleri
PDF
AnkaraJUG Haziran 2013 - No SQL / Big Data
PPTX
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
PDF
Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme
PDF
Bilginç IT Academy - JPA (Java Persistence API)
PDF
Mongo sunum
PDF
JSON-P 1.1 EDR1 Webinar
PPTX
Mongodb-Adem
PDF
Node.js
PPTX
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
PDF
Nosql ve mongoDB
PPTX
C# İle Veri Tabanı Bağlantılarının Özellikleri
PPT
Java EE Struts
PDF
C++ kitaplari
PDF
İleri Seviye T-SQL Programlama - Chapter 15
PDF
Nosql veritabanlari
PDF
Nosql & MongoDB
PDF
MongoDB ve C# Driver'ı
Arama Sistemleri
AnkaraJUG Haziran 2013 - No SQL / Big Data
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme
Bilginç IT Academy - JPA (Java Persistence API)
Mongo sunum
JSON-P 1.1 EDR1 Webinar
Mongodb-Adem
Node.js
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Nosql ve mongoDB
C# İle Veri Tabanı Bağlantılarının Özellikleri
Java EE Struts
C++ kitaplari
İleri Seviye T-SQL Programlama - Chapter 15
Nosql veritabanlari
Nosql & MongoDB
MongoDB ve C# Driver'ı
Ad

More from Cihan Özhan (20)

PPTX
AI and Machine Learning - Today’s Implementation Realities
PPTX
Blockchain : Decentralized Application Development (Turkish)
PDF
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
PDF
Golang Book - Go Programlama Dili Temelleri
PDF
Golang Book - Genel Bakış
PDF
Golang Book - Giriş
PDF
Endüstriyel Yapay Zeka ve Otonom Sistemler
PDF
AI Security : Machine Learning, Deep Learning and Computer Vision Security
PPTX
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
PPTX
Python Programlama Dili
PDF
İleri Seviye T-SQL Programlama - Chapter 21
PDF
İleri Seviye T-SQL Programlama - Chapter 20
PDF
İleri Seviye T-SQL Programlama - Chapter 19
PDF
İleri Seviye T-SQL Programlama - Chapter 18
PDF
İleri Seviye T-SQL Programlama - Chapter 17
PDF
İleri Seviye T-SQL Programlama - Chapter 16
PDF
İleri Seviye T-SQL Programlama - Chapter 14
PDF
İleri Seviye T-SQL Programlama - Chapter 13
PDF
İleri Seviye T-SQL Programlama - Chapter 12
PDF
İleri Seviye T-SQL Programlama - Chapter 11
AI and Machine Learning - Today’s Implementation Realities
Blockchain : Decentralized Application Development (Turkish)
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Golang Book - Go Programlama Dili Temelleri
Golang Book - Genel Bakış
Golang Book - Giriş
Endüstriyel Yapay Zeka ve Otonom Sistemler
AI Security : Machine Learning, Deep Learning and Computer Vision Security
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Python Programlama Dili
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 11

MongoDB - JSON'a Genel Bakış

  • 2. DeepLab : Teknolojiler ML/DL/CV Odaklı • Teknolojiler – Go, Python, C/C++, Rust, C# – PyTorch, TensorFlow, Keras, scikit-learn • Web, Mobile, IoT/Edge ve Back-End olarak… – OpenCV – … ve farklı onlarca araç-gereç… • Databases – SQL Server, Oracle, PostgreSQL – MongoDB, Redis, Cassandra • Distributed Systems – Distributed Databases – Distributed Deep Learning
  • 3. JSON JSON : JavaScript Object Notation Cihan Özhan | DeepLab.co | Founder & AI Engineer, Mentor
  • 6. JSON Nedir? • JSON, JavaScript Object Notation anlamına gelir. • Official Website : http://json.org • Online JSON Parser : http://json.parser.online.fr/beta • Bu format Douglas Crockford tarafından belirlendi. • JSON dosya adı uzantısı .json’dur. • JSON Internet Media Type : ‘application/json’ • The Uniform Type Identifier is public.json • JSON – Insan tarafından okunabilir. – Veri depolamak e değiş-tokuş etmek için bir sözdizimidir. – Dil bağımsız bir veri formatıdır. – “Self-Describing” ve anlaşılması kolay. – JSON JavaScript sözdizimi kullanır ama JSON format metin tabanlıdır. XML gibi… • Okunabilir ve veri formatı olarak her programlama diliyle kullanılılabilirdir. • API ve Config için kullanılır.
  • 7. JSON Sözdizimi • Veriler name/value ikilisinde oluşur. • Veriler virgülle ayrılmıştır. • Küme araçları(Curly Braces) nesneleri tutar. • Köşeli parantezler(Square Brackets) dizileri tutar. • JSON'un yaygın bir kullanımı, verileri bir web sunucusundan okumak ve bir web sayfasında görüntülemektir.
  • 8. JSON vs. XML • JSON daha kısadır. • JSON, bitiş etiketini kullanmaz. • JSON dizileri destekler. • JSON'un görüntüleme yeteneği yok. • Native nesne desteği. • Her ikisi de 'kendi kendini tanımlayan', yani değerlerin adlandırıldığı anlamına gelir. • Her ikisi de 'insan tarafından okunabilir’. • Her ikisi de hiyerarşiktir. (yani değerleri bir başka değer içinde tutabilirsiniz.) • Her ikisi de ayrıştırılabilir ve birçok programlama dili tarafından kullanılabilir. • JSON daha az ayrıntılıdır, bu nedenle insanlar için kesinlikle daha hızlı okunabilir. • JSON, JavaScript'teki eval() prosedürü kullanılarak basit bir şekilde ayrıştırılabilir. • JSON, {her öğenin kendi adına sahip olmadığı} dizileri içerir. • Hem JSON hem de XML bir XMLHttpRequest ile getirilebilir
  • 9. JSON vs. XML • XML dizi verilerini desteklemez. • XML, JSON'dan biraz daha karmaşıktır. • XML, bir öğenin başında ve sonunda bir etiket adı bulunan açılı parantezler kullanır: – JSON, adı yalnızca öğenin başında olan dalgalı parantezler kullanır. • XML'de bir öğe için istediğiniz herhangi bir adı kullanabilirsiniz, JSON'da javascript'ten ayrılmış(reserved) kelimeleri kullanamazsınız. • XML, bir biçimlendirme dili olduğu için verileri görüntüleme yeteneği sağlar. • Herhangi bir veri türü kavramı sağlamaz. Tür bilgisi eklemek için XML Şemasına güvenilmelidir.
  • 10. JSON vs. XML • İkisi de basit ve açık. • Her ikisi de unicode'u destekler. Dolayısıyla Internationalization hem JSON hem de XML tarafından desteklenir. • Her ikisi de kendi kendini tanımlayan verileri temsil eder. • Her ikisi de birlikte çalışabilir veya dilden bağımsızdır.
  • 11. JSON kullanımları • JSON, tarayıcı uzantısı ve web siteleri içeren JavaScript tabanlı uygulama yazarken kullanılır. • JSON formatı, yapılandırılmış verileri ağ bağlantısı üzerinden seri hale getirmek(serialization) ve iletmek için kullanılır. • JSON, esas olarak sunucu ve web uygulaması arasında veri iletmek için kullanılır. • Web Servisler ve API'ler, herkese açık veriler sağlamak için JSON biçimini kullanır. • JSON, modern programlama dilleriyle kullanılabilir.
  • 13. BSON • BSON : Binary JSON • http://bsonspec.org/ • Lightweight – Uzamsal(spatial) ek yükü minimumda tutmak, özellikle ağ üzerinden kullanıldığında herhangi bir veri gösterimi formatı için önemlidir. • Traversable – BSON is designed to be traversed easily. This is a virtual property in its role as the primary data representation for MongoDB. • Efficient – Encoding data to BSON and decoding from BSON can be performed very quickly in most languages due to the use of C data types.
  • 14. MongoDB BSON’ı Nasıl Kullanır? • MongoDB, “dökümanlar" için veri depolama ve ağ aktarım biçimi olarak BSON'u kullanır. • Basit veri yapılarını ve ilişkisel dizileri(associative arrays) temsil etmek için binary bir formdur.
  • 15. JSON Veri Tipleri • Object • Array • Value • String • Number
  • 16. Value {...}, [...], 2, "one", true, null
  • 18. Array [{”firstname”: ”Jane”, ”lastname": ”Doe”}, {”firstname”: ”John”, ”lastname": ”Jones”}]
  • 19. Squiggles, Squares, Colons, Commas • Dalgalı parantezler 'kapsayıcı' görevi görür. – {...} • Köşeli parantezler dizileri tutar. – [...] • İsimler ve değerler iki nokta üst üste ile ayrılır. – name:value • Dizi öğeleri virgülle ayrılır. – [member1, member2]
  • 23. JSON Döküman Doğrulama • JSON’da Well-Formedness kontrolü • JSON Dökümanlarını JSON Şemalarına karşı doğrulama • JSON Şemalarını Şartname’ye(Specification) göre doğrulama
  • 24. Well-Formedness Kontrolü • JSON belgesinin JSON belirtimine uyup uymadığını kontrol edin! • ECMA-404 JSON Veri Değişim Standardı – http://json.org
  • 25. Anahtardan sonra ':’ olmalı ',’ olmalı ',’ olmamalı “ ile kapanmalı '}’ olmalı
  • 26. JSON Schema JSON Şeması, JSON dökümanlarına açıklama eklemenize ve bunları doğrulamanıza olanak tanıyan bir sözlüktür. http://json-schema.org
  • 27. JSON Schema Tanımlamak • XML Şeması, RNG veya DTD'ye benzer • JSON ile yazıldı • JSON verilerinin yapısını tanımlamak için kullanılır {”type”: ”string”} ”I'm a string” JSON Schema JSON Instance
  • 28. JSON Schema JSON Instance
  • 29. JSON Schema JSON Instance
  • 30. JSON Schema Tanımlamak • Şema tanımının ilk seviyede olması tavsiye edilir: "$schema": "http://json-schema.org/draft-07/schema#" • JSON Schema kullanılan versiyonlar: – Draft 4 – Draft 6 – Draft 7 – Draft 8
  • 31. JSON Schema ile Doğrulamak • JSON örneğinin tanımlara uyup uymadığını kontrol edin: Beklenen string, gelen integer [lastname] gerekirken [familyname] Geçersiz email adresi
  • 32. JSON Şemasını İlişkilendir • Şemayı JSON Dökümana ilişkilendir. – Doğrudan JSON dökümanında $schema özelliğini kullanarak – Uygulama ayarlarında
  • 33. JSON Schema Doğrulamak • well-formedness Kontrolü • The Internet Engineering Task Force(IETF) Specification’e Göre Doğrulamak
  • 34. Schematron ile JSON Doğrulamak • JSON Şemasını kullanarak JSON yapısını belirtin. • Schematron kullanarak ortak kısıtlamalar ve özel kurallar. • https://schematron.com
  • 35. JSON için Schematron • Kuralları belirlemek için XPath kullanın/
  • 36. JSONPath Kullanarak Schematron • Schematron, XML/XPath bakış açısı ile JSON için yeniden tasarlandı. https://github.com/amer-ali/jsontron
  • 37. Querying ve Transforming • JSON Pointer, JSONiq veya XPath kullanarak sorgulamak • JSON'u JavaScript, XSLT, XQuery kullanarak dönüştürmek
  • 38. JSON Pointer Bir JSON belgesindeki belirli bir değeri tanımlamak için kullanılır. #/employees/0/email İlk çalışan emaili ile eşleşir. Specification https://tools.ietf.org/html/rfc6901
  • 39. JSONiq JSON için bir sorgu ve işleme dili www.jsoniq.org
  • 40. XPath • XML dökümanlarını sorgulamak için güçlü dildir. • JSON için de uygulamalar tarafından benimsenmiştir. /employees[2]/email 2. çalışan emaili ile eşleşir
  • 41. JSON'u JavaScript ile işleyin • JSON belgelerini işlemenin en popüler yolu. • Birden çok library var json = '{"name":”John Doe”, "age":42}’; obj = JSON.parse(json); console.log(obj.name); // Result John Doe console.log(obj.age); // Result 42
  • 42. XSLT/XQuery Kullanarak Dönüştürme • JSON dökümanlarını farklı biçimlere dönüştürür. • JSON dökümanları işlemek için farklı fonksiyonlar : – json-doc($href as xs:string?) as item()? – json-to-xml($json-text as xs:string?) as document-node()?
  • 43. Converting JSON Documents • JSON'dan XML'e ve XML'den JSON’a • XSLT kullanarak dönüştürme • Online Converters
  • 46. XML'den JSON'a Dönüştürme Ayrıntıları • XML nitelikleri özelliklere dönüştürülür: <person id="1"/> {"person": {"id": 1}} • Aynı ada sahip birden çok öğe bir diziye dönüştürülür. <person/> <person/> "person": ["",""] • Karışık içerikteki metin bir #text özelliğine dönüştürülür. <p>This is an <b>example</b>!</p> p": {"#text": "This is an", "b": "example", "#text1": "!"}
  • 47. XSLT Kullanarak Dönüştürme • XSLT kullanarak XML'yi JSON'a dönüştüren library – https://github.com/bramstein/xsltjson • JSON için XSLT Spesifikasyonu – http://www.w3.org/TR/xslt-30/#json
  • 49. JSON API • https://jsonapi.org/ • https://jsonplaceholder.typicode.com/