JSON biçimi

JSON biçimi

JSON biçimi

JSON Metin tabanlı bir veri değişim formatıdır, yani bir program için olduğu kadar bir kişi için de okunması kolaydır. Adı İngilizce kısaltmasına karşılık gelir JavaScript Nesnesi Gösterimi ve şu şekilde standartlaştırılmıştır: ECMA-404. Sözdizimsel olarak birbirine çok yakın bir format olmasına rağmen JavaScriptNesne verilerini kodlamak veya elde etmek işlenmesi çok kolay olduğundan diğer birçok programlama dilinde de kullanılmaktadır (C, C + +, Java, Python...) örneğin benzer bir amaca sahip olan ancak daha fazla meta-bilgi içerdiğinden, daha fazla metin gerektirdiğinden ve dolayısıyla daha fazla yer kapladığından, daha fazla bant genişliği tükettiğinden ve kodlama ve kod çözme için daha fazla kaynak gerektirdiğinden XML'e alternatif olarak içerdiği bilgiler. JSON.

İçindekiler

    Kodlanmış bir nesnenin verileri JSON Bunlar parantez içine alınır, içerdikleri farklı özellikler virgülle ayrılır ve özellik adları, iki nokta üst üste işaretiyle ayrıldıkları değerden önce gelir.

    JSON formatında bir nesnenin sözdiziminin ana hatları

    Özellik adları çift tırnak kullanılarak tırnak içine alınmalıdır (her ne kadar bazı ayrıştırıcılar tek tırnak işaretlerini desteklese de) ve adlar için bazı özel karakterlere (aksan işaretleri gibi) izin verilse de, bazı analiz motorlarının kriterlerinden kaçınılması ve bazı analiz motorlarının kriterlerinden kaçınılması önerilmez. özelliği özellikle nokta(object.property) sözdizimi ile kullanırken çakışmalar

    Yukarıdaki örnekte basit, sayısal, boolean veya metin değerlerine sahip altı özelliğe sahip bir nesneyi görebilirsiniz; ama formatta JSON, özellikler aynı zamanda bir metin dizesine (tırnak işaretleri içindeki bir metin), bir sayıya (farklı formatlarda) veya bir boole değerine (doğru veya yanlış) ek olarak bir nesneyi ("özel nesne" boş değeri dahil) veya bir diziyi de değer olarak alabilir ).

    Dilde olduğu gibi JavaScript (JSON bir alt kümesidir JavaScript) bir matrisi ifade etmek için değerleri köşeli parantez içine alınır ve virgüllerle ayrılır. En basit durum aşağıdaki örnekte gösterilmiştir; Sayısal değerlerden oluşan tek boyutlu bir dizi, bir vektördür.

    En JavaScript Bir dizinin tüm öğelerinin aynı türde olması gerekmez; örneğin metin dizelerini ve sayısal değerleri karıştırabilirsiniz. Tek boyutlu bir dizi olan bir vektör, başka bir dizinin elemanlarından biri de olabilir ve değişken uzunluklarda çok boyutlu dizilerin oluşturulmasına olanak tanır. Aşağıdaki örnek, üç özelliğe sahip bir nesneyi göstermektedir: birincisi, sabit uzunlukların iki boyutlu bir dizisi, ikincisi değişken uzunluklar ve üçüncüsü, farklı türde değerlerin bulunduğu bir dizi tarafından oluşturulmuştur.

    Aşağıdaki örnek, ana nesnenin özelliklerine değer olarak diğer nesneleri kullanır. Yuvalama düzeyinde herhangi bir sınır yoktur, dolayısıyla ebeveynin özellik değeri olan nesneler de özellik değerleri olarak başka nesnelere sahip olabilir vb.

    Aynen olduğu gibi JavaScriptkaçış kodları, bir metin dizesine belirli karakterleri dahil etmek için kullanılır. En genel yol, kaçış çubuğu, u harfi ve dört onaltılık rakamla ifade edilen unicode kodlarını şu formatta kullanmaktır: "\u263A" örneğin ☺'ye atıfta bulunmak için.

    Çoğu dilde mevcut olan standart karakterler (C'ye benzer) aşağıdaki gibidir

    • yozlaşma \b Kod ASCII 8 (0x08)
    • Tabulator \t Kod ASCII 9 (0x09) Genellikle HT (yatay tablolayıcı) olarak temsil edilir.
    • Yeni hat \n Kod ASCII 10 (0x0A) Genellikle LF (satır besleme) olarak temsil edilir
    • Yeni sayfa \f Kod ASCII 12 (0x0C) Genellikle FF (form beslemesi) olarak temsil edilir
    • dönüş \r Kod ASCII 13 (0x0D) Genellikle CR (satır başı) olarak temsil edilir
    • tırnak işareti \" Kod ASCII 34 (0x22)
    • bölme çubuğu \/ Kod ASCII 57 (0x2F)
    • barra invertida \\ Kod ASCII 134 (0x5C)
    • evrensel kod \uXXXX

    Elde edilen C (ve bununla ilgili Unix ve benzeri gibi GNU / Linux) satırın sonu genellikle ile temsil edilir \n ve seçilmesi gereken odur JSON ancak bazı işletim sistemlerinin diğer alternatifleri tercih ettiğini hatırlamak ilginçtir. Windows genellikle şunu temsil eder: \r\n satır sonları ve Mac OS (OS'den önce) \r

    Sayısal formatla ilgili olarak referans aynı zamanda JavaScript. Ondalık ayırıcı noktadır, tire (ASCII 45 0x2D) negatif işaret olarak kullanılır ve üstel formda gösterim (Bilimsel gösterim) kullanır E gösterge olarak (büyük veya küçük harf olabilir)

    Başta da söylediğim gibi elde edilecek veriyi metin olarak kullanmak için farklı programlama dillerinin analiz ve atama fonksiyonları bulunmaktadır. Aşağıdaki örnek bunların nasıl kullanılacağını göstermektedir. JavaScript. Konsoldan kullanabilmek için veri ataması dahildir JSON Tercümanın kullandığı ECMA standardına bağlı olası hataları önlemek için JavaScript nesne ataması yapılır JSON tek bir satırda. 6'nın 2016. Baskısı (ECMA-262) çok satırlı dizeleri destekler, sürüm 5'te (2011'e kadar) kaçış kodu eklenmesi gerekir \ öncekilerde ise elle çözmeniz ya da tek satır kullanmanız gerekiyor.

    Yeni kullanıcıların kafasını karıştırmamak için bir uyarı JavaScript. Kodun içinde JavaScript Bir nesne oluşturmak için bir metin dizesi kullanmak gerekli değildir; önceki örnekte, örneğin bir sunucudan gelen verileri simüle etmek için kullanılmıştır. Bir değişkene bir nesne atamak için şunun gibi bir şey yapın:

    Bu nesne, örneğin aşağıdaki işlevle metne dönüştürülebilir: stringify aşağıdaki gibi:

    Formatı JSON Oldukça esnektir ancak temel olarak insan tarafından okunabilecek şekilde metin tabanlı olması nedeniyle bazı dezavantajlara sahiptir. Birincisi, daha fazla bellek gerektirmesi ve gerekenden daha fazla bant genişliği tüketmesidir. Önceki örneklerde, ekonomik olmaktan çok okunabilir olmayı hedefleyen bir format kullanılmıştı, bu nedenle tasarruf örneği değillerdi, yine de formatın devam edecek birçok unsuru (köşeli ayraçlar, köşeli parantezler, tırnaklar...) vardı. Ham olarak temsil edilen bilgilere kıyasla kaynakları tüketmek.

    İkinci sorun tamamen ikili verilerle (örneğin görseller) uğraşırken ortaya çıkıyor.Küçük porsiyonlarla uğraşırken özel karakterlerin biçimlendirmesini çözmek için anlatılanlarla çözülebilir, ancak konu belirli boyutlardaki bilgilerin kodlanmasıyla ilgiliyse, Formatın içine yerleştirmeniz gerekecek JSON başka bir metin biçimi kullanarak. Bu yönü çözmek için en çok kullanılan kodlama Base64 çünkü birçok dilde bilgiyi şu veya bu yönde dönüştürmek için kütüphaneler bulunur. Eğer manipüle edilen veriler ağırlıklı olarak bu türdense ve/veya bir kişinin bilgileri bir program olmadan yorumlaması gerekli değilse, formatın uygun olup olmadığı dikkate alınmalıdır. JSON en uygun olanıdır.

    Yorum Ekle

    Kaçırmış Olabilirsiniz