JSON - Hızlı Kılavuz
JSON veya JavaScript Object Notation, insan tarafından okunabilir veri değişimi için tasarlanmış hafif, metin tabanlı bir açık standarttır. JSON tarafından kullanılan kurallar programcılar tarafından bilinir; bunlar arasında C, C ++, Java, Python, Perl vb.
JSON, JavaScript Nesne Gösterimi anlamına gelir.
Biçim, Douglas Crockford tarafından belirlendi.
İnsan tarafından okunabilir veri değişimi için tasarlanmıştır.
JavaScript kodlama dilinden genişletilmiştir.
Dosya adı uzantısı .json.
JSON Internet Media türü application/json.
Tekdüzen Tür Tanımlayıcısı public.json'dur.
JSON kullanımları
Tarayıcı uzantılarını ve web sitelerini içeren JavaScript tabanlı uygulamalar yazarken kullanılır.
JSON biçimi, yapılandırılmış verileri ağ bağlantısı üzerinden seri hale getirmek ve iletmek için kullanılır.
Öncelikle bir sunucu ve web uygulamaları arasında veri iletmek için kullanılır.
Web hizmetleri ve API'ler, herkese açık veriler sağlamak için JSON biçimini kullanır.
Modern programlama dilleri ile kullanılabilir.
JSON'un özellikleri
- JSON'u okumak ve yazmak kolaydır.
- Hafif, metin tabanlı bir değişim biçimidir.
- JSON dilden bağımsızdır.
JSON'da Basit Örnek
Aşağıdaki örnek, konularına ve baskılarına göre kitaplarla ilgili bilgileri depolamak için JSON'un nasıl kullanılacağını gösterir.
{
"book": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id":"07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
Yukarıdaki programı anladıktan sonra başka bir örnek deneyeceğiz. Aşağıdaki kodu şu şekilde kaydedelim:json.htm -
<html>
<head>
<title>JSON example</title>
<script language = "javascript" >
var object1 = { "language" : "Java", "author" : "herbert schildt" };
document.write("<h1>JSON with JavaScript example</h1>");
document.write("<br>");
document.write("<h3>Language = " + object1.language+"</h3>");
document.write("<h3>Author = " + object1.author+"</h3>");
var object2 = { "language" : "C++", "author" : "E-Balagurusamy" };
document.write("<br>");
document.write("<h3>Language = " + object2.language+"</h3>");
document.write("<h3>Author = " + object2.author+"</h3>");
document.write("<hr />");
document.write(object2.language + " programming language can be studied " + "from book written by " + object2.author);
document.write("<hr />");
</script>
</head>
<body>
</body>
</html>
Şimdi json.htm'yi IE'yi veya aşağıdaki sonucu üreten herhangi bir javascript etkin tarayıcıyı kullanarak açmayı deneyelim -
JSON nesneleri hakkında daha fazla bilgi için JSON Nesneleri bölümüne bakabilirsiniz.
JSON'un temel sözdizimine hızlı bir göz atalım. JSON sözdizimi temelde JavaScript sözdiziminin bir alt kümesi olarak kabul edilir; aşağıdakileri içerir -
Veriler, ad / değer çiftlerinde temsil edilir.
Kaşlı ayraçlar nesneleri tutar ve her adın ardından ':' (iki nokta üst üste) gelir, ad / değer çiftleri, (virgül) ile ayrılır.
Köşeli parantezler dizileri tutar ve değerler, (virgül) ile ayrılır.
Aşağıda basit bir örnek verilmiştir -
{
"book": [
{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id": "07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
JSON şu iki veri yapısını destekler -
Collection of name/value pairs - Bu Veri Yapısı, farklı programlama dilleri tarafından desteklenmektedir.
Ordered list of values - Dizi, liste, vektör veya dizi vb. İçerir.
JSON biçimi aşağıdaki veri türlerini destekler -
Sr.No. | Tip ve Açıklama |
---|---|
1 | Number JavaScript'te çift duyarlıklı kayan nokta biçimi |
2 | String ters eğik çizgi kaçışıyla çift tırnaklı Unicode |
3 | Boolean doğru ya da yanlış |
4 | Array sıralı bir değerler dizisi |
5 | Value bir dize, sayı, doğru veya yanlış, boş vb. olabilir |
6 | Object sırasız bir anahtar koleksiyonu: değer çiftleri |
7 | Whitespace herhangi bir çift arasında kullanılabilir |
8 | null boş |
Numara
JavaScript'te çift duyarlıklı bir kayan nokta biçimidir ve uygulamaya bağlıdır.
Sekizli ve onaltılık formatlar kullanılmaz.
Number'da NaN veya Infinity kullanılmaz.
Aşağıdaki tablo numara türlerini göstermektedir -
Sr.No. | Tip ve Açıklama |
---|---|
1 | Integer 1-9, 0 rakamları ve pozitif veya negatif |
2 | Fraction 0,3, 0,9 gibi kesirler |
3 | Exponent E, e +, e-, E, E +, E- gibi üsler |
Sözdizimi
var json-object-name = { string : number_value, .......}
Misal
Sayı Veri Tipini gösteren örnek, değer tırnak içine alınmamalıdır -
var obj = {marks: 97}
Dize
Ters eğik çizgiden kaçan sıfır veya daha fazla çift tırnaklı Unicode karakter dizisidir.
Karakter tek bir karakter dizisidir, yani uzunluğu 1 olan bir dizedir.
Tablo, bir JSON belgesinin dizelerinde kullanabileceğiniz çeşitli özel karakterleri gösterir -
Sr.No. | Tip ve Açıklama |
---|---|
1 | " çift tırnak |
2 | \ ters eğik çizgi |
3 | / eğik çizgi |
4 | b geri tuşu |
5 | f form besleme |
6 | n Yeni hat |
7 | r satırbaşı |
8 | t yatay sekme |
9 | u dört onaltılık basamak |
Sözdizimi
var json-object-name = { string : "string value", .......}
Misal
Dize Veri Tipini gösteren örnek -
var obj = {name: 'Amit'}
Boole
Doğru veya yanlış değerleri içerir.
Sözdizimi
var json-object-name = { string : true/false, .......}
Misal
var obj = {name: 'Amit', marks: 97, distinction: true}
Dizi
Sıralı bir değerler koleksiyonudur.
Bunlar köşeli parantez içine alınır, bu da dizinin ile başladığı anlamına gelir. [. ve ile biter.] ..
Değerler, (virgül) ile ayrılır.
Dizi indeksleme 0 veya 1'den başlatılabilir.
Anahtar adları sıralı tamsayılar olduğunda diziler kullanılmalıdır.
Sözdizimi
[ value, .......]
Misal
Birden çok nesne içeren diziyi gösteren örnek -
{
"books": [
{ "language":"Java" , "edition":"second" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
]
}
Nesne
Sırasız bir ad / değer çifti kümesidir.
Nesneler küme parantezi içine alınır, yani '{' ile başlar ve '}' ile biter.
Her adın ardından ':' (iki nokta üst üste) gelir ve anahtar / değer çiftleri, (virgül) ile ayrılır.
Anahtarlar dizge olmalı ve birbirinden farklı olmalıdır.
Anahtar adları rastgele dizeler olduğunda nesneler kullanılmalıdır.
Sözdizimi
{ string : value, .......}
Misal
Object gösteren örnek -
{
"id": "011A",
"language": "JAVA",
"price": 500,
}
Beyaz boşluk
Herhangi bir simge çifti arasına yerleştirilebilir. Bir kodu daha okunaklı hale getirmek için eklenebilir. Örnek, boşluklu ve boşluksuz bildirimi gösterir -
Sözdizimi
{string:" ",....}
Misal
var obj1 = {"name": "Sachin Tendulkar"}
var obj2 = {"name": "SauravGanguly"}
boş
Boş tip demektir.
Sözdizimi
null
Misal
var i = null;
if(i == 1) {
document.write("<h1>value is 1</h1>");
} else {
document.write("<h1>value is null</h1>");
}
JSON Değeri
İçerir -
- sayı (tam sayı veya kayan nokta)
- string
- boolean
- array
- object
- null
Sözdizimi
String | Number | Object | Array | TRUE | FALSE | NULL
Misal
var i = 1;
var j = "sachin";
var k = null;
Basit Nesneler Oluşturma
JSON nesneleri JavaScript ile oluşturulabilir. JavaScript kullanarak JSON nesneleri oluşturmanın çeşitli yollarını görelim -
- Boş bir Nesnenin Oluşturulması -
var JSONObj = {};
- Yeni bir Nesnenin oluşturulması -
var JSONObj = new Object();
Nitelikli bir nesnenin oluşturulması bookname dizede değer, özellik pricesayısal değer ile. Özniteliğe '.' Kullanılarak erişilir. Operatör -
var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
Bu, JSON kullanılarak javascript'te bir nesnenin oluşturulmasını gösteren bir örnektir, aşağıdaki kodu şu şekilde kaydedin: json_object.htm -
<html>
<head>
<title>Creating Object JSON with JavaScript</title>
<script language = "javascript" >
var JSONObj = { "name" : "tutorialspoint.com", "year" : 2005 };
document.write("<h1>JSON with JavaScript example</h1>");
document.write("<br>");
document.write("<h3>Website Name = "+JSONObj.name+"</h3>");
document.write("<h3>Year = "+JSONObj.year+"</h3>");
</script>
</head>
<body>
</body>
</html>
Şimdi IE'yi veya herhangi bir javaScript etkin tarayıcıyı kullanarak Json Object'i açmayı deneyelim . Aşağıdaki sonucu verir -
Dizi Nesneleri Oluşturma
Aşağıdaki örnek, JSON kullanılarak javascript'te bir dizi nesnesinin oluşturulmasını gösterir, aşağıdaki kodu json_array_object.htm -
<html>
<head>
<title>Creation of array object in javascript using JSON</title>
<script language = "javascript" >
document.writeln("<h2>JSON array object</h2>");
var books = { "Pascal" : [
{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }]
}
var i = 0
document.writeln("<table border = '2'><tr>");
for(i = 0;i<books.Pascal.length;i++) {
document.writeln("<td>");
document.writeln("<table border = '1' width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Pascal[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Pascal[i].price +"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
for(i = 0;i<books.Scala.length;i++) {
document.writeln("<td>");
document.writeln("<table border = '1' width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Scala[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Scala[i].price+"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
document.writeln("</tr></table>");
</script>
</head>
<body>
</body>
</html>
Şimdi IE veya başka bir javaScript etkin tarayıcı kullanarak Json Array Nesnesini açmayı deneyelim . Aşağıdaki sonucu verir -
JSON Şeması, JSON verilerinin yapısını tanımlamak için JSON tabanlı format için bir belirtimdir. 2011'de süresi dolan IETF taslağı altında yazılmıştır. JSON Schema -
- Mevcut veri formatınızı açıklar.
- Açık, insan ve makine tarafından okunabilen belgeler.
- Otomatik test için yararlı olan eksiksiz yapısal doğrulama.
- Müşteri tarafından gönderilen verileri doğrulayan eksiksiz yapısal doğrulama.
JSON Şema Doğrulama Kitaplıkları
Şu anda farklı programlama dilleri için kullanılabilen birkaç doğrulayıcı vardır. Şu anda mevcut olan en eksiksiz ve uyumlu JSON Şeması doğrulayıcı JSV'dir.
Diller | Kitaplıklar |
---|---|
C | WJElement (LGPLv3) |
Java | json-schema-validator (LGPLv3) |
.AĞ | Json.NET (MIT) |
ActionScript 3 | Frigga (MIT) |
Haskell | aeson şeması (MIT) |
Python | Jsonschema |
Yakut | otoparse (ASL 2.0); ruby-jsonschema (MIT) |
PHP | php-json-schema (MIT). json-schema (Berkeley) |
JavaScript | Düzenli (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (değiştirilmiş BSD veya AFL 2.0); schema.js. |
JSON Şema Örneği
Aşağıda, klasik bir ürün kataloğu açıklamasını kapsayan temel bir JSON şeması verilmiştir -
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "integer"
},
"name": {
"description": "Name of the product",
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"required": ["id", "name", "price"]
}
Bu şemada kullanılabilecek çeşitli önemli anahtar kelimeleri kontrol edelim -
Sr.No. | Anahtar Kelime ve Açıklama |
---|---|
1 | $schema $ Schema anahtar sözcüğü, bu şemanın taslak v4 belirtimine göre yazıldığını belirtir. |
2 | title Bunu şemanıza bir başlık vermek için kullanacaksınız. |
3 | description Şemanın küçük bir açıklaması. |
4 | type Type anahtar sözcüğü, JSON verilerimiz üzerindeki ilk kısıtlamayı tanımlar: bir JSON Nesnesi olmalıdır. |
5 | properties JSON dosyasında kullanılacak çeşitli anahtarları ve bunların değer türlerini, minimum ve maksimum değerlerini tanımlar. |
6 | required Bu, gerekli özelliklerin bir listesini tutar. |
7 | minimum Bu, değere konulacak kısıtlamadır ve minimum kabul edilebilir değeri temsil eder. |
8 | exclusiveMinimum "ExclusiveMinimum" mevcutsa ve true boole değerine sahipse, örnek "minimum" değerinden kesinlikle daha büyükse geçerlidir. |
9 | maximum Bu, değere konulacak kısıtlamadır ve kabul edilebilir maksimum değeri temsil eder. |
10 | exclusiveMaximum "ExclusiveMaximum" mevcutsa ve true boole değerine sahipse, örnek "maksimum" değerinden kesinlikle daha düşükse geçerlidir. |
11 | multipleOf Örneğin bu anahtar kelimenin değerine göre bölünmesinin sonucu bir tamsayı ise sayısal bir örnek "multipleOf" a karşı geçerlidir. |
12 | maxLength Bir dize örneğinin uzunluğu, maksimum karakter sayısı olarak tanımlanır. |
13 | minLength Bir dize örneğinin uzunluğu, karakterlerinin minimum sayısı olarak tanımlanır. |
14 | pattern Normal ifade, örnekle başarılı bir şekilde eşleşirse, bir dize örneği geçerli kabul edilir. |
Kontrol edebilirsiniz http://json-schema.orgJSON şemasını tanımlamada kullanılabilecek anahtar kelimelerin tam listesi için. Yukarıdaki şema, aşağıdaki JSON kodunun geçerliliğini test etmek için kullanılabilir -
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]
JSON ve XML, okunabilir formatlardır ve dilden bağımsızdır. Her ikisinin de gerçek dünyadaki durumlarda yaratma, okuma ve kod çözme desteği var. JSON'u XML ile aşağıdaki faktörlere göre karşılaştırabiliriz -
Ayrıntılı
XML, JSON'dan daha ayrıntılıdır, bu nedenle programcılar için JSON yazmak daha hızlıdır.
Diziler Kullanımı
XML, dizileri içermeyen yapılandırılmış verileri açıklamak için kullanılırken JSON dizileri içerir.
Ayrıştırma
JavaScript'in eval yöntemi JSON'u ayrıştırır. JSON'a uygulandığında, eval açıklanan nesneyi döndürür.
Misal
XML ve JSON için ayrı örnekler -
JSON
{
"company": Volkswagen,
"name": "Vento",
"price": 800000
}
XML
<car>
<company>Volkswagen</company>
<name>Vento</name>
<price>800000</price>
</car>
Bu bölüm, JSON nesnelerinin PHP programlama dili kullanılarak nasıl kodlanacağını ve kodunun nasıl çözüleceğini kapsar. JSON için PHP ile programlamaya başlamak için ortamı hazırlayarak başlayalım.
Çevre
PHP 5.2.0'dan itibaren, JSON uzantısı varsayılan olarak PHP içinde paketlenmiş ve derlenmiştir.
JSON İşlevleri
Fonksiyon | Kitaplıklar |
---|---|
json_encode | Bir değerin JSON temsilini döndürür. |
json_decode | JSON dizesinin kodunu çözer. |
json_last_error | Oluşan son hatayı döndürür. |
JSON'u PHP'de kodlama (json_encode)
PHP json_encode () işlevi, PHP'de JSON'u kodlamak için kullanılır. Bu işlev, başarı durumunda bir değerin JSON temsilini veya başarısızlık durumunda FALSE değerini döndürür.
Sözdizimi
string json_encode ( $value [, $options = 0 ] )
Parametreler
value- Kodlanmakta olan değer. Bu işlev yalnızca UTF-8 kodlanmış verilerle çalışır.
options - Bu isteğe bağlı değer, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT’den oluşan bir bit maskesidir.
Misal
Aşağıdaki örnek, bir dizinin PHP ile JSON'a nasıl dönüştürüleceğini gösterir -
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
Yürütürken, bu aşağıdaki sonucu verecektir -
{"a":1,"b":2,"c":3,"d":4,"e":5}
Aşağıdaki örnek, PHP nesnelerinin JSON'a nasıl dönüştürülebileceğini gösterir -
<?php
class Emp {
public $name = "";
public $hobbies = ""; public $birthdate = "";
}
$e = new Emp(); $e->name = "sachin";
$e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
$e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e);
?>
Yürütürken, bu aşağıdaki sonucu verecektir -
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
PHP'de JSON kodunu çözme (json_decode)
PHP json_decode () işlevi, PHP'de JSON kodunu çözmek için kullanılır. Bu işlev, json'dan uygun PHP türüne kodu çözülen değeri döndürür.
Sözdizimi
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Paramatörler
json_string - UTF-8 ile kodlanmış veri olması gereken kodlanmış bir dizedir.
assoc - Bu bir boole tipi parametresidir, TRUE olarak ayarlandığında, döndürülen nesneler ilişkilendirilebilir dizilere dönüştürülür.
depth - Özyineleme derinliğini belirten tamsayı tipi bir parametredir
options - JSON kod çözümünün tamsayı tipi bit maskesidir, JSON_BIGINT_AS_STRING desteklenir.
Misal
Aşağıdaki örnek, JSON nesnelerinin kodunu çözmek için PHP'nin nasıl kullanılabileceğini gösterir -
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
Yürütürken aşağıdaki sonucu üretecektir -
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
Bu bölüm, JSON nesnelerinin Perl programlama dili kullanılarak nasıl kodlanacağını ve kodunun nasıl çözüleceğini kapsar. JSON için Perl ile programlamaya başlamak için ortamı hazırlayarak başlayalım.
Çevre
JSON'u Perl kullanarak kodlamaya ve kodunu çözmeye başlamadan önce, CPAN'dan temin edilebilen JSON modülünü kurmanız gerekir. JSON-2.53.tar.gz veya başka bir son sürümü indirdikten sonra, aşağıda belirtilen adımları izleyin -
$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53 $perl Makefile.PL
$make $make install
JSON İşlevleri
Fonksiyon | Kitaplıklar |
---|---|
encode_json | Verilen Perl veri yapısını UTF-8 kodlu, ikili bir dizeye dönüştürür. |
decode_json | JSON dizesinin kodunu çözer. |
to_json | Verilen Perl veri yapısını bir json dizesine dönüştürür. |
from_json | Bir json dizesi bekler ve sonuçta ortaya çıkan referansı döndürerek onu ayrıştırmaya çalışır. |
convert_blessed | Perl'in bir nesneyi JSON'a dönüştürmek için nesne sınıfında TO_JSON yöntemini kullanabilmesi için bu işlevi gerçek değerle kullanın. |
JSON'u Perl'de kodlama (encode_json)
Perl encode_json () işlevi, verilen Perl veri yapısını UTF-8 kodlu, ikili bir dizeye dönüştürür.
Sözdizimi
$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);
Misal
Aşağıdaki örnek, Perl ile JSON altındaki dizileri gösterir -
#!/usr/bin/perl
use JSON;
my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json = encode_json \%rec_hash; print "$json\n";
Yürütürken, bu aşağıdaki sonucu verecektir -
{"e":5,"c":3,"a":1,"b":2,"d":4}
Aşağıdaki örnek, Perl nesnelerinin JSON'a nasıl dönüştürülebileceğini gösterir -
#!/usr/bin/perl
package Emp;
sub new {
my $class = shift; my $self = {
name => shift,
hobbies => shift,
birthdate => shift,
};
bless $self, $class;
return $self; } sub TO_JSON { return { %{ shift() } }; } package main; use JSON; my $JSON = JSON->new->utf8;
$JSON->convert_blessed(1); $e = new Emp( "sachin", "sports", "8/5/1974 12:20:03 pm");
$json = $JSON->encode($e); print "$json\n";
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}
Perl'de JSON kodunu çözme (decode_json)
Perl decode_json () işlevi, Perl'de JSON kodunu çözmek için kullanılır. Bu işlev json'dan kodu çözülen değeri uygun bir Perl türüne döndürür.
Sözdizimi
$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)
Misal
Aşağıdaki örnek, JSON nesnelerinin kodunu çözmek için Perl'in nasıl kullanılabileceğini gösterir. Halihazırda makinenizde yoksa Data :: Dumper modülünü kurmanız gerekecektir.
#!/usr/bin/perl
use JSON;
use Data::Dumper;
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; $text = decode_json($json); print Dumper($text);
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
$VAR1 = {
'e' => 5,
'c' => 3,
'a' => 1,
'b' => 2,
'd' => 4
};
Bu bölüm, JSON nesnelerinin Python programlama dili kullanılarak nasıl kodlanacağını ve çözüleceğini kapsar. JSON için Python ile programlamaya başlamak için ortamı hazırlamaya başlayalım.
Çevre
Python kullanarak JSON'u kodlamaya ve kodunu çözmeye başlamadan önce, mevcut JSON modüllerinden herhangi birini yüklemeniz gerekir. Bu eğitim için Demjson'ı aşağıdaki gibi indirip kurduk -
$tar xvfz demjson-1.6.tar.gz
$cd demjson-1.6 $python setup.py install
JSON İşlevleri
Fonksiyon | Kitaplıklar |
---|---|
kodlamak | Python nesnesini bir JSON dizesi gösterimine kodlar. |
deşifre etmek | JSON kodlu bir dizenin kodunu bir Python nesnesine dönüştürür. |
JSON'u Python'da kodlama (kodlama)
Python encode () işlevi, Python nesnesini bir JSON dizesi temsiline kodlar.
Sözdizimi
demjson.encode(self, obj, nest_level=0)
Misal
Aşağıdaki örnek, Python ile JSON altındaki dizileri gösterir.
#!/usr/bin/python
import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print json
Yürütürken, bu aşağıdaki sonucu verecektir -
[{"a":1,"b":2,"c":3,"d":4,"e":5}]
Python'da JSON kodunu çözme (kod çözme)
Python, JSON kodunu çözmek için demjson.decode () işlevini kullanabilir. Bu işlev, json'dan kodu çözülen değeri uygun bir Python türüne döndürür.
Sözdizimi
demjson.decode(self, txt)
Misal
Aşağıdaki örnek, JSON nesnelerinin kodunu çözmek için Python'un nasıl kullanılabileceğini gösterir.
#!/usr/bin/python
import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print text
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
Bu bölüm, Ruby programlama dili kullanılarak JSON nesnelerinin nasıl kodlanacağını ve kodunun nasıl çözüleceğini kapsar. Ruby for JSON ile programlamaya başlamak için ortamı hazırlamakla başlayalım.
Çevre
Ruby kullanarak JSON'u kodlamaya ve kodunu çözmeye başlamadan önce, Ruby için mevcut olan JSON modüllerinden herhangi birini kurmanız gerekir. Ruby gem'i yüklemeniz gerekebilir, ancak Ruby'nin en son sürümünü çalıştırıyorsanız, o zaman makinenizde gem'in kurulu olması gerekir, aksi takdirde, zaten gem'in kurulu olduğunu varsayarak aşağıdaki tek adımı takip edelim -
$gem install json
JSON'u Ruby kullanarak ayrıştırma
Aşağıdaki örnek, ilk 2 anahtarın dize değerlerini tuttuğunu ve son 3 anahtarın dizelerin dizilerini tuttuğunu gösterir. Aşağıdaki içeriği adlı bir dosyada tutalıminput.json.
{
"President": "Alan Isaac",
"CEO": "David Richardson",
"India": [
"Sachin Tendulkar",
"Virender Sehwag",
"Gautam Gambhir"
],
"Srilanka": [
"Lasith Malinga",
"Angelo Mathews",
"Kumar Sangakkara"
],
"England": [
"Alastair Cook",
"Jonathan Trott",
"Kevin Pietersen"
]
}
Aşağıda, yukarıda belirtilen JSON belgesini ayrıştırmak için kullanılacak bir Ruby programı verilmiştir -
#!/usr/bin/ruby
require 'rubygems'
require 'json'
require 'pp'
json = File.read('input.json')
obj = JSON.parse(json)
pp obj
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
{
"President"=>"Alan Isaac",
"CEO"=>"David Richardson",
"India"=>
["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],
"Srilanka"=>
["Lasith Malinga ", "Angelo Mathews", "Kumar Sangakkara"],
"England"=>
["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]
}
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 standart Harita veya List 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]
AJAX, zaman uyumsuz web uygulamaları oluşturmak için istemci tarafında birbiriyle ilişkili web geliştirme teknikleri grubu olarak kullanılan Asenkron JavaScript ve XML'dir. AJAX modeline göre, web uygulamaları mevcut sayfanın görüntüsüne ve davranışına müdahale etmeden asenkron olarak bir sunucudan veri gönderip alabilir.
Birçok geliştirici, istemci ve sunucu arasında AJAX güncellemelerini geçirmek için JSON kullanır. Canlı spor skorlarını güncelleyen web siteleri AJAX'ın bir örneği olarak düşünülebilir. Bu puanların web sitesinde güncellenmesi gerekiyorsa, web sayfasının puanı gerektiğinde alabilmesi için sunucuda saklanmaları gerekir. JSON biçimli verileri kullanabileceğimiz yer burasıdır.
AJAX kullanılarak güncellenen herhangi bir veri, web sunucusunda JSON biçimi kullanılarak depolanabilir. AJAX, javascript'in gerektiğinde bu JSON dosyalarını alabilmesi, ayrıştırabilmesi ve aşağıdaki işlemlerden birini gerçekleştirebilmesi için kullanılır:
Ayrıştırılmış değerleri web sayfasında görüntülemeden önce daha fazla işlem yapmak için değişkenlerde saklayın.
Verileri doğrudan web sayfasındaki DOM öğelerine atar, böylece web sitesinde görüntülenirler.
Misal
Aşağıdaki kod, AJAX ile JSON'u gösterir. Olarak kaydedinajax.htmdosya. Burada loadJSON () yükleme işlevi, JSON verilerini yüklemek için eşzamansız olarak kullanılır.
<html>
<head>
<meta content = "text/html; charset = ISO-8859-1" http-equiv = "content-type">
<script type = "application/javascript">
function loadJSON() {
var data_file = "http://www.tutorialspoint.com/json/data.json";
var http_request = new XMLHttpRequest();
try{
// Opera 8.0+, Firefox, Chrome, Safari
http_request = new XMLHttpRequest();
}catch (e) {
// Internet Explorer Browsers
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
http_request.onreadystatechange = function() {
if (http_request.readyState == 4 ) {
// Javascript function JSON.parse to parse JSON data
var jsonObj = JSON.parse(http_request.responseText);
// jsonObj variable now contains the data structure and can
// be accessed as jsonObj.name and jsonObj.country.
document.getElementById("Name").innerHTML = jsonObj.name;
document.getElementById("Country").innerHTML = jsonObj.country;
}
}
http_request.open("GET", data_file, true);
http_request.send();
}
</script>
<title>tutorialspoint.com JSON</title>
</head>
<body>
<h1>Cricketer Details</h1>
<table class = "src">
<tr><th>Name</th><th>Country</th></tr>
<tr><td><div id = "Name">Sachin</div></td>
<td><div id = "Country">India</div></td></tr>
</table>
<div class = "central">
<button type = "button" onclick = "loadJSON()">Update Details </button>
</div>
</body>
</html>
Aşağıda verilen giriş dosyasıdır data.jsonJSON formatında verilere sahip olup, bu veriler eşzamansız olarak yüklenecektir. Update Detailbuton. Bu dosya tutuluyorhttp://www.tutorialspoint.com/json/
{"name": "Brett", "country": "Australia"}
Yukarıdaki HTML kodu, AJAX'ı çalışırken kontrol edebileceğiniz aşağıdaki ekranı oluşturacaktır -
Kriket Oyuncu Detayları
İsim | Ülke |
---|---|
Sachin
|
Hindistan
|
Tıkladığınızda Update Detaildüğmesi, aşağıdaki gibi bir sonuç almalısınız. Tarayıcınızın Javascript'i desteklemesi koşuluyla JSON'u AJAX ile kendiniz deneyebilirsiniz .
Kriket Oyuncu Detayları
İsim | Ülke |
---|---|
Brett
|
Avustralya
|