Yorumlar JSON'da kullan─▒labilir mi?


Al─▒nan cevaba git


Bir JSON dosyas─▒n─▒n i├žindeki yorumlar─▒ kullanabilir miyim? ├ľyleyse nas─▒l?


6998









Cevap say─▒s─▒n─▒ say: 30






Yok hay─▒r.

JSON'un t├╝m├╝ veri olmal─▒ ve bir yorum eklerseniz, o zaman da veri olacakt─▒r.

"_comment" JSON verilerini kullanan uygulamalar taraf─▒ndan g├Âz ard─▒ edilebilecek (veya ba┼čka bir ┼čey) adl─▒ bir veri ├Â─česine sahip olabilirsiniz .

JSON verilerinin ne olaca─č─▒n─▒ ├Ânceden bilmesi gerekti─či gibi, ya da en az─▒ndan bunun yap─▒s─▒n─▒ bilmesi gerekti─či i├žin, JSON'u olu┼čturan / alan s├╝re├žlerde yorumu daha iyi yapacaks─▒n─▒z.

Ama e─čer karar verdiysen:

 {
   "_comment": "comment text goes here...",
   "glossary": {
      "title": "example glossary",
      "GlossDiv": {
         "title": "S",
         "GlossList": {
            "GlossEntry": {
               "ID": "SGML",
               "SortAs": "SGML",
               "GlossTerm": "Standard Generalized Markup Language",
               "Acronym": "SGML",
               "Abbrev": "ISO 8879:1986",
               "GlossDef": {
                  "para": "A meta-markup language, used to create markup languages such as DocBook.",
                  "GlossSeeAlso": ["GML", "XML"]
               },
               "GlossSee": "markup"
            }
         }
      }
   }
}
 

5056


2008-10-28





Hay─▒r , JSON'da forma yap─▒lan yorumlar─▒ //ÔÇŽ veya /*ÔÇŽ*/ izin verilmez. Bu cevap a┼ča─č─▒dakilere dayanmaktad─▒r:

  • http://www.json.org
  • RFC 4627 : application/json JavaScript Nesne Notasyonu i├žin Medya T├╝r├╝ (JSON)
  • RFC 8259 JavaScript Nesne Notasyonu (JSON) Veri De─či┼čim Bi├žimi (supercedes RFCs 4627, 7158, 7159)

1753







─░sterseniz yorumlar─▒ ekleyin; ayr─▒┼čt─▒rmadan veya iletmeden ├Ânce bunlar─▒ bir minifier ile ├ž─▒kart─▒n.

Sadece bir JSON blo─čundan yorum ve bo┼čluk b─▒rakan ve ayr─▒┼čt─▒r─▒labilecek ge├žerli bir JSON yapan JSON.minify () s├╝r├╝m├╝n├╝ yay─▒mlad─▒m . Yani, gibi kullanabilirsiniz:

 JSON.parse(JSON.minify(my_str));
 

Yay─▒nlad─▒─č─▒mda, fikrine bile kat─▒lmamakta ├žok b├╝y├╝k bir geri tepme ├žektim, bu y├╝zden yorumlar─▒n neden JSON'da anlaml─▒ oldu─čunu anlatan kapsaml─▒ bir blog yaz─▒s─▒ yazmaya karar verdim . Bu, JSON'un yarat─▒c─▒s─▒n─▒n dikkat ├žekici yorumunu i├žerir:

A├ž─▒klama eklemek istedi─činiz yap─▒land─▒rma dosyalar─▒n─▒ saklamak i├žin JSON kulland─▒─č─▒n─▒z─▒ varsayal─▒m. Devam edin ve istedi─činiz t├╝m yorumlar─▒ ekleyin. Ard─▒ndan JSON ayr─▒┼čt─▒r─▒c─▒n─▒za teslim etmeden ├Ânce JSMin'den ge├žirin. - Douglas Crockford, 2012

Umar─▒m bu neden JSON.minify () ' nin faydal─▒ olabilece─čine kat─▒lmamakta yarar vard─▒r.


766







Yorumlar JSON'dan tasar─▒mla kald─▒r─▒lm─▒┼čt─▒r.

JSON'dan yorumlar─▒ kald─▒rd─▒m ├ž├╝nk├╝ insanlar─▒n bunlar─▒ birlikte ├žal─▒┼čabilirli─či yok edecek bir uygulama olan ayr─▒┼čt─▒rma y├Ânergelerini tutmak i├žin kulland─▒klar─▒n─▒ g├Ârd├╝m. Yorum eksikli─činin baz─▒ insanlar─▒ ├╝zd├╝─č├╝n├╝ biliyorum, ama yapmamal─▒.

A├ž─▒klama eklemek istedi─činiz yap─▒land─▒rma dosyalar─▒n─▒ saklamak i├žin JSON kulland─▒─č─▒n─▒z─▒ varsayal─▒m. Devam edin ve istedi─činiz t├╝m yorumlar─▒ ekleyin. Ard─▒ndan JSON ayr─▒┼čt─▒r─▒c─▒n─▒za teslim etmeden ├Ânce JSMin'den ge├žirin.

Kaynak: Douglas Crockford'un G + 'dan kamuya a├ž─▒k ifadesi


417







YASAL UYARI: GARANTİSİNİZ GEÇERLİDİR

Belirtildi─či gibi, bu kesmek ┼čartnamenin uygulanmas─▒ndan faydalan─▒r. T├╝m JSON ayr─▒┼čt─▒r─▒c─▒lar─▒ bu JSON t├╝r├╝n├╝ anlamaz. ├ľzellikle Streaming ayr─▒┼čt─▒r─▒c─▒lar─▒ bo─čulacak.

Bu ilgin├ž bir merak, ama ger├žekten hi├žbir ┼čey i├žin kullanmamal─▒s─▒n . Orijinal cevap a┼ča─č─▒dad─▒r.


Ayr─▒┼čt─▒rmay─▒ etkilemeyecek bir JSON dosyas─▒na yorum yerle┼čtirmenize ya da herhangi bir ┼čekilde temsil edilen verileri de─či┼čtirmenize olanak tan─▒yan k├╝├ž├╝k bir bilgisayar kimli─či buldum.

Bir nesne de─či┼čmezi bildirirken, ayn─▒ anahtarla iki de─čer belirtebilece─činiz ve sonuncunun ├Ânceli─či oldu─ču anla┼č─▒l─▒yor. ─░ster inan─▒n ister inanmay─▒n, JSON ayr─▒┼čt─▒r─▒c─▒lar─▒n─▒n ayn─▒ ┼čekilde ├žal─▒┼čt─▒─č─▒ ortaya ├ž─▒kt─▒. B├Âylece, kaynak JSON'da ayr─▒┼čt─▒r─▒lm─▒┼č nesne temsilinde bulunmayacak yorumlar olu┼čturmak i├žin bunu kullanabiliriz.

 ({a: 1, a: 2});
// => Object {a: 2}
Object.keys(JSON.parse('{"a": 1, "a": 2}')).length; 
// => 1
 

Bu tekni─či uygularsak, yorum yapt─▒─č─▒n─▒z JSON dosyan─▒z ┼č├Âyle g├Âr├╝nebilir:

 {
  "api_host" : "The hostname of your API server. You may also specify the port.",
  "api_host" : "hodorhodor.com",

  "retry_interval" : "The interval in seconds between retrying failed API calls",
  "retry_interval" : 10,

  "auth_token" : "The authentication token. It is available in your developer dashboard under 'Settings'",
  "auth_token" : "5ad0eb93697215bc0d48a7b69aa6fb8b",

  "favorite_numbers": "An array containing my all-time favorite numbers",
  "favorite_numbers": [19, 13, 53]
}
 

Yukar─▒daki kod ge├žerli bir JSON'dur . Ayr─▒┼čt─▒r─▒rsan─▒z, ┼č├Âyle bir nesne elde edersiniz:

 {
    "api_host": "hodorhodor.com",
    "retry_interval": 10,
    "auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
    "favorite_numbers": [19,13,53]
}
 

Bu, yorumlar─▒n hi├žbir izinin olmad─▒─č─▒ ve garip yan etkileri olmayaca─č─▒ anlam─▒na geliyor.

Mutlu hack!


199







JSON yorumlar─▒ desteklemiyor. Ayn─▒ zamanda, yorumlar─▒n gerekli olaca─č─▒ yap─▒land─▒rma dosyalar─▒ i├žin kullan─▒lmak ├╝zere tasarlanmam─▒┼čt─▒r.

Hjson, insanlar i├žin bir yap─▒land─▒rma dosyas─▒ format─▒d─▒r. Rahat s├Âzdizimi, daha az hata, daha fazla yorum.


Hjson intro

JavaScript, Java, Python, PHP, Rust, Git, Ruby ve C # k├╝t├╝phaneleri i├žin bkz. Hjson.org .


168







YAML kullanmay─▒ d├╝┼č├╝n├╝n. Neredeyse bir JSON s├╝permarketidir (hemen hemen t├╝m ge├žerli JSON ge├žerli YAML'dir) ve yorumlara izin verir.


113







Yapamazs─▒n En az─▒ndan bu benim json.org de h─▒zl─▒ bir bak─▒┼čta benim deneyimim .

JSON'un s├Âzdizimi o sayfada g├Ârselle┼čtirilmi┼čtir. Yorumlar hakk─▒nda herhangi bir not yok.


102







Bunun yerine bir JSON ┼čemas─▒ yazmal─▒s─▒n─▒z . JSON ┼čemas─▒ ┼ču anda ├Ânerilen bir ─░nternet taslak ├Âzelli─čidir. Belgelerin yan─▒ s─▒ra, ┼čema JSON verilerinizi do─črulamak i├žin de kullan─▒labilir.

├ľrnek:

 {
    "description":"A person",
    "type":"object",
    "properties":
        {
            "name":
                {
                    "type":"string"
                },
            "age":
                {
                    "type":"integer",
                    "maximum":125
                }
        }
}
 

A├ž─▒klama ┼čemas─▒ ├Âzelli─čini kullanarak dok├╝mantasyon sa─člayabilirsiniz .


66







Jackson'─▒ JSON ayr─▒┼čt─▒r─▒c─▒n─▒z olarak kullan─▒yorsan─▒z , yorumlara izin vermesini ┼ču ┼čekilde yapabilirsiniz:

 ObjectMapper mapper = new ObjectMapper().configure(Feature.ALLOW_COMMENTS, true);
 

O zaman ┼č├Âyle yorumlar─▒n─▒z olabilir:

 {
  key: "value" // Comment
}
 

Ayr─▒ca # ayarlayarak ba┼člayarak yorum yapabilirsiniz :

 mapper.configure(Feature.ALLOW_YAML_COMMENTS, true);
 

Ancak genel olarak (daha ├Ânce cevapland─▒─č─▒ gibi) ┼čartname yorumlara izin vermez.


60







Yorumlar resmi bir standart de─čildir. Baz─▒ ayr─▒┼čt─▒r─▒c─▒lar C tarz─▒ yorumlar─▒ desteklese de. Kulland─▒─č─▒m tek ┼čey JsonCpp . ├ľrneklerde bu var:

 // Configuration options
{
    // Default encoding for text
    "encoding" : "UTF-8",

    // Plug-ins loaded at start-up
    "plug-ins" : [
        "python",
        "c++",
        "ruby"
        ],

    // Tab indent size
    "indent" : { "length" : 3, "use_space": true }
}
 

jsonlint bunu do─črulamaz. Yani yorumlar ayr─▒┼čt─▒r─▒c─▒ya ├Âzg├╝ bir uzant─▒d─▒r ve standart de─čildir.

Ba┼čka bir ayr─▒┼čt─▒r─▒c─▒ JSON5'tir .

JSON TOML'a bir alternatif .

Di─čer bir alternatif ise jsonc'tur .


58







─░┼čte Google Firebase belgelerinde JSON'a yorum yapman─▒za izin verenleri buldum :

 {
  "//": "Some browsers will use this to enable push notifications.",
  "//": "It is the same for all projects, this is not your project's sender ID",
  "gcm_sender_id": "1234567890"
}
 

48


2017-06-22





JSON dizisi olan metin dosyan─▒z bir program taraf─▒ndan okunacaksa, kullanmadan ├Ânce C veya C ++ stil yorumlar─▒n─▒ ├ž─▒karmak ne kadar zor olabilir?

Cevap: Tek bir astar olurdu. Bunu yaparsan─▒z, JSON dosyalar─▒ yap─▒land─▒rma dosyalar─▒ olarak kullan─▒labilir.


39







Newtonsoft.Json k├╝t├╝phanesini ASP.NET ile okumak / seri hale getirmek i├žin kullan─▒yorsan─▒z, yorumlar─▒ JSON i├žeri─činde kullanabilirsiniz:

// "name": "string"

// "id": int

veya

/* Bu bir

yorum ├Ârne─či * /

Not: Tek sat─▒rl─▒ yorumlar yaln─▒zca Newtonsoft Json'un 6+ s├╝r├╝m├╝yle desteklenir.

Kutudan d├╝┼č├╝nemeyen insanlar i├žin ek not: Yapt─▒─č─▒m bir ASP.NET web uygulamas─▒nda temel ayarlar i├žin JSON format─▒n─▒ kullan─▒yorum. Dosyay─▒ okudum, onu Newtonsoft k├╝t├╝phanesi ile ayarlar nesnesine d├Ân├╝┼čt├╝rd├╝m ve gerekti─činde kullan─▒yorum.

JSON dosyas─▒ndaki her bir ayar hakk─▒nda yorum yazmay─▒ tercih ediyorum ve kulland─▒─č─▒m kitapl─▒─č─▒n tamam oldu─ču s├╝rece JSON format─▒n─▒n b├╝t├╝nl├╝─č├╝n├╝ ger├žekten umursam─▒yorum.

Bunun ayr─▒ bir 'settings.README' dosyas─▒ olu┼čturmaktan ve i├žindeki ayarlar─▒ a├ž─▒klamaktan daha 'kullan─▒m─▒ / anla┼č─▒lmas─▒ kolay' bir yol oldu─čunu d├╝┼č├╝n├╝yorum.

Bu t├╝r bir kullan─▒mla ilgili bir sorununuz varsa; ├╝zg├╝n├╝m, cin lambadan ├ž─▒kt─▒. ─░nsanlar JSON format─▒ i├žin ba┼čka kullan─▒mlar bulabilir ve bu konuda yapabilece─činiz hi├žbir ┼čey yoktur.


34







JSON'un ard─▒ndaki fikir uygulamalar aras─▒nda basit veri al─▒┼čveri┼či sa─člamak. Bunlar genellikle web tabanl─▒d─▒r ve dil JavaScript'tir.

Ancak, bu t├╝r yorumlara ger├žekten izin vermez, ancak, bir verinin verideki ad / de─čer ├žiftlerinden biri olarak iletilmesi kesinlikle i┼če yarayacakt─▒r, ancak bu verilerin a├ž─▒k├ža ayr─▒┼čt─▒rma kodu taraf─▒ndan dikkate al─▒nmamas─▒ veya ele al─▒nmas─▒ gerekir.

B├╝t├╝n bunlar, JSON dosyas─▒n─▒n geleneksel anlamda yorumlar i├žermesi gerekti─či anlam─▒na gelmiyor. Sadece veri olmal─▒.

G├Âz at JSON web Daha fazla ayr─▒nt─▒ i├žin.


30







Sadece yap─▒land─▒rma dosyalar─▒ i├žin bununla kar┼č─▒la┼č─▒yorum. XML (ayr─▒nt─▒l─▒, grafiksel, ├žirkin, okunmas─▒ zor) veya "ini" bi├žimini (hiyerar┼či yok, ger├žek standart yok, vb.) Veya Java "├ľzellikler" bi├žimini (.ini gibi) kullanmak istemiyorum .

JSON yapabilecekleri her ┼čeyi yapabilir, ancak daha az ayr─▒nt─▒l─▒ ve daha okunakl─▒ bir yoldur - ve ayr─▒┼čt─▒r─▒c─▒lar bir├žok dilde kolay ve her yerde bulunur. Bu sadece bir veri a─čac─▒. Ancak bant d─▒┼č─▒ yorumlar genellikle "varsay─▒lan" yap─▒land─▒rmalar─▒ ve benzerlerini belgelemek i├žin bir zorunluluktur. Yap─▒land─▒rmalar hi├žbir zaman "tam belgeler" olamaz, ancak gerekti─činde insan taraf─▒ndan okunabilen kaydedilmi┼č veri a─ča├žlar─▒.

San─▒r─▒m bir "#": "comment" "JSON" ge├žerli.


29







JSON yorumlar─▒ yerel olarak desteklemez, ancak yorumlar─▒ ├ž─▒karmak i├žin kendi kod ├ž├Âz├╝c├╝n├╝z├╝ veya en az─▒ndan ├Ân i┼člemcinizi yapabilirsiniz, bu tamamen iyidir (yorumlar─▒ g├Ârmezden geldi─činiz ve uygulaman─▒z─▒n JSON verilerini nas─▒l i┼člemesi gerekti─čini y├Ânlendirmek i├žin kullanmad─▒─č─▒n─▒z s├╝rece ).

JSON'un yorumu yok. Bir JSON kodlay─▒c─▒ yorum vermemelidir. Bir JSON kod ├ž├Âz├╝c├╝, yorumlar─▒ kabul edebilir ve g├Ârmezden gelebilir.

Yorumlar asla anlaml─▒ bir ┼čey iletmek i├žin kullan─▒lmamal─▒d─▒r. JSON bunun i├žin var.

Cf: Douglas Crockford, JSON spec .


28







JSON k├╝t├╝phanenize ba─čl─▒d─▒r. Json.NET , JavaScript tarz─▒ yorumlar─▒ destekliyor /* commment */ .

Ba┼čka bir Y─▒─č─▒n Ta┼čmas─▒ sorusuna bak─▒n .


28


2012-08-04





JSON, her yerde oldu─ču ve XML'den ├žok daha basit oldu─ču i├žin config dosyalar─▒ ve di─čer yerel kullan─▒mlar i├žin ├žok anlaml─▒d─▒r.

─░nsanlar─▒n veri iletirken JSON'da yorum yapmalar─▒na kar┼č─▒ g├╝├žl├╝ nedenleri varsa (ge├žerli olsun ya da olmas─▒n), muhtemelen JSON ikiye ayr─▒labilir:

  • JSON-COM: Teldeki JSON veya JSON verilerini iletirken uygulanan kurallar.
  • JSON-DOC: JSON belgesi veya dosyalarda veya yerel olarak JSON. Ge├žerli bir JSON belgesi tan─▒mlayan kurallar.

JSON-DOC yorumlara izin verecek ve beyaz bo┼čluk i┼čleme gibi di─čer k├╝├ž├╝k farkl─▒l─▒klar olabilir. Parsers, bir ├Âzellikten di─čerine kolayca d├Ân├╝┼čt├╝rebilir.

Douglas Crockford'un bu konularda yapt─▒─č─▒ a├ž─▒klama ile ilgili olarak (@Artur Czajka)

A├ž─▒klama eklemek istedi─činiz yap─▒land─▒rma dosyalar─▒n─▒ saklamak i├žin JSON kulland─▒─č─▒n─▒z─▒ varsayal─▒m. Devam edin ve istedi─činiz t├╝m yorumlar─▒ ekleyin. Ard─▒ndan JSON ayr─▒┼čt─▒r─▒c─▒n─▒za teslim etmeden ├Ânce JSMin'den ge├žirin.

Genel bir yap─▒land─▒rma dosyas─▒ sorunundan (dil / platform) bahsediyoruz ve JS'ye ├Âzel bir yard─▒mc─▒ programa cevap veriyor!

JSON'a ├Âzg├╝ bir k├╝├ž├╝ltmenin herhangi bir dilde uygulanabildi─činden emin olun, ancak bunu standartla┼čt─▒r─▒n, b├Âylece t├╝m dillerde ve platformlarda ayr─▒┼čt─▒r─▒c─▒lar aras─▒nda her yerde bulunmaz hale gelir, b├Âylece insanlar bu ├Âzelli─či kullanmadan iyi vakit ge├žirmekten vazge├žebilirler. ├ževrimi├ži forumlar ve insanlara onlara bunun k├Ât├╝ bir fikir oldu─čunu s├Âylemesi veya metin dosyalar─▒ndan ├ž─▒karmadan yorum yapman─▒n kolay oldu─čunu ├Âne s├╝rmesi.

Di─čer sorun birlikte ├žal─▒┼čabilirliktir. Bir kitapl─▒k veya API'niz veya onunla ili┼čkili baz─▒ yap─▒land─▒rma veya veri dosyalar─▒na sahip herhangi bir alt sisteminiz oldu─čunu varsayal─▒m. Ve bu alt sisteme farkl─▒ dillerden eri┼čilebilir. O zaman insanlara anlatmaya devam ediyor musunuz: bu arada, ayr─▒┼čt─▒r─▒c─▒ya ge├žmeden ├Ânce JSON dosyalar─▒ndan gelen yorumlar─▒ ├ž─▒karmay─▒ unutmay─▒n!


25







Dojo Toolkit JavaScript ara├ž seti (en az─▒ndan 1.4 s├╝r├╝m├╝nden itibaren), JSON'unuza yorum eklemenizi sa─člar. Yorumlar /* */ bi├žiminde olabilir. Dojo Toolkit, JSON'u dojo.xhrGet() ├ža─čr─▒ yoluyla t├╝ketir .

Di─čer JavaScript ara├ž setleri benzer ┼čekilde ├žal─▒┼čabilir.

Bu, son bir se├ženek se├žmeden ├Ânce alternatif veri yap─▒lar─▒ (veya hatta veri listeleri) ile deneme yaparken yard─▒mc─▒ olabilir.


22







JSON5 kullan─▒yorsan─▒z yorum ekleyebilirsiniz.


JSON5, insanlar─▒n el ile yazmas─▒n─▒ ve bak─▒m─▒n─▒ kolayla┼čt─▒rmay─▒ ama├žlayan JSON'a ├Ânerilen bir uzant─▒d─▒r . Bunu, baz─▒ ECMAScript 5'ten baz─▒ minimal s├Âzdizimi ├Âzellikleri ekleyerek yapar.


22







JSON yorumlar─▒ desteklemek i├žin kullan─▒l─▒r, ancak k├Ât├╝ye kullan─▒ld─▒ ve standarttan ├ž─▒kar─▒ld─▒.

JSON'un yarat─▒c─▒s─▒ndan:

JSON'dan yorumlar─▒ kald─▒rd─▒m ├ž├╝nk├╝ insanlar─▒n bunlar─▒ birlikte ├žal─▒┼čabilirli─či yok edecek bir uygulama olan ayr─▒┼čt─▒rma y├Ânergelerini tutmak i├žin kulland─▒klar─▒n─▒ g├Ârd├╝m. Yorum eksikli─činin baz─▒ insanlar─▒ ├╝zd├╝─č├╝n├╝ biliyorum, ama yapmamal─▒. - Douglas Crockford, 2012

Resmi JSON sitesi JSON.org'dad─▒r . JSON, ECMA International taraf─▒ndan standart olarak tan─▒mlanm─▒┼čt─▒r . Standartlar─▒n g├Âzden ge├žirilmesi i├žin bir dilek├že s├╝reci her zaman vard─▒r. JSON standard─▒na ├že┼čitli nedenlerle ek a├ž─▒klamalar─▒n eklenmesi olas─▒ de─čildir.

Tasar─▒mla JSON, XML'e kolayca ters-m├╝hendislik (insan ├ž├Âz├╝ml├╝) bir alternatiftir. Ek a├ž─▒klamalar─▒n gereksiz oldu─ču noktaya kadar basitle┼čtirilmi┼čtir. Bir bi├žimlendirme dili bile de─čil. Ama├ž, istikrar ve birlikte ├žal─▒┼čabilirliktir.

Nesne y├Âneliminin "sahip-bir" ili┼čkisini anlayan herhangi biri herhangi bir JSON yap─▒s─▒n─▒ anlayabilir - as─▒l mesele budur. Neredeyse evrensel bir veri yap─▒s─▒ olan nod etiketleri (anahtar / de─čer ├žiftleri) i├žeren sadece y├Ânlendirilmi┼č bir asiklik grafiktir (DAG).

Bu yaln─▒zca gerekli a├ž─▒klama notu "// Bunlar DAG etiketleri" olabilir. Anahtar adlar─▒, iste─če ba─čl─▒ semantik aritelere izin vererek gerekti─či kadar bilgilendirici olabilir.

Herhangi bir platform JSON'u yaln─▒zca birka├ž kod sat─▒r─▒yla ayr─▒┼čt─▒r─▒r. XML, bir├žok platformda ge├žerli olmayan karma┼č─▒k OO k├╝t├╝phaneleri gerektirir.

Ek a├ž─▒klamalar, JSON'un daha az birlikte ├žal─▒┼čabilir olmas─▒n─▒ sa─člar. Gereksinim duydu─čunuz ┼čey bir bi├žimlendirme dili (XML) olmad─▒─č─▒ s├╝rece ekleyece─činiz ba┼čka bir ┼čey yoktur ve kal─▒c─▒ verilerinizin kolayca ayr─▒┼čt─▒r─▒l─▒p alg─▒lanmamas─▒ umrumda de─čildir.


21







JSON, ├žer├ževeli bir protokol de─čil . Bu dil ├╝cretsiz bir formatt─▒r . Dolay─▒s─▒yla, bir yorumun bi├žimi JSON i├žin tan─▒mlanmam─▒┼čt─▒r.

Bir├žok ki┼činin ├Ânerdi─či gibi, baz─▒ hileler vard─▒r; ├Ârne─čin, yinelenen anahtarlar veya _comment kullanabilece─činiz belirli bir anahtar . Sana kalm─▒┼č.


19







Sen edebilirsiniz i├žinde yorumlar─▒n─▒z JSONP de─čil saf JSON. Program─▒m─▒n Highcharts'tan bu ├Ârnekle ├žal─▒┼čmas─▒n─▒ sa─člamak i├žin bir saatimi harcad─▒m: http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?

Ba─člant─▒y─▒ takip edersen g├Âreceksin

 ?(/* AAPL historical OHLC data from the Google Finance API */
[
/* May 2006 */
[1147651200000,67.79],
[1147737600000,64.98],
...
[1368057600000,456.77],
[1368144000000,452.97]
]);
 

Yerel klas├Âr├╝mdeki benzer bir dosyaya sahip oldu─čum i├žin, Ayn─▒ men┼če politikas─▒nda hi├žbir sorun yoktu , bu y├╝zden saf JSON kullanmaya karar verdim ... ve elbette, $.getJSON yorumlar y├╝z├╝nden sessizce ba┼čar─▒s─▒z oldu.

Sonunda yukar─▒daki adrese manuel bir HTTP iste─či g├Ânderdim ve i├žerik t├╝r├╝n├╝n text/javascript JSONP'nin saf JavaScript d├Ând├╝rd├╝─č├╝nden beri oldu─čunu anlad─▒m . Bu durumda yorumlara izin verilir . Ancak ba┼čvurum i├žerik t├╝r├╝ d├Ând├╝rd├╝ application/json , bu y├╝zden yorumlar─▒ kald─▒rmam gerekti.


18


2013-10-07





Bu bir "yapabilir misin" sorusudur. Ve i┼čte bir "evet" cevab─▒.

Hay─▒r, yan kanal verilerini bir JSON kodlamas─▒na doldurmak i├žin yinelenen nesne ├╝yelerini kullanmamal─▒s─▒n─▒z. (Bkz . RFC'de "Bir nesnenin i├žindeki isimler benzersiz olmal─▒d─▒r" ).

Ve evet, ayr─▒┼čt─▒rabilece─činiz JSON ├ževresine yorumlar ekleyebilirsiniz .

Ancak, iste─če ba─čl─▒ yan kanal verilerini ge├žerli bir JSON'a eklemek ve ├ž─▒karmak i├žin bir yol varsa, i┼čte size bir cevap. Bir JSON kodlamas─▒nda benzersiz olmayan verilerin g├Âsterilmesinden yararlan─▒r─▒z. Bu izin * "├Ânce veya alt─▒ yap─▒sal karakterlerden herhangi sonras─▒nda izin verilir bo┼čluk" alt─▒nda RFC b├Âl├╝m├╝nde iki.

* RFC, "dizgilerden, say─▒lardan," yanl─▒┼č "," do─čru "ve" bo┼č "ifadelerinden a├ž─▒k├ža bahsetmeden," bo┼čluk karakterine alt─▒ yap─▒sal karakterden ├Ânce veya sonra izin verildi─čini "belirtir. Bu ihmal T├ťM uygulamalarda g├Âz ard─▒ edilir.


├ľncelikle, k├╝├ž├╝lterek JSON'unuzu kanonize edin:

 $jsonMin = json_encode(json_decode($json));
 

Ard─▒ndan yorumunuzu ikili olarak kodlay─▒n:

 $hex = unpack('H*', $comment);
$commentBinary = base_convert($hex[1], 16, 2);
 

Sonra ikili kodunuzu y├Ânlendirin:

 $steg = str_replace('0', ' ', $commentBinary);
$steg = str_replace('1', "\t", $steg);
 

─░┼čte ├ž─▒kt─▒n─▒z:

 $jsonWithComment = $steg . $jsonMin;
 

17







YASAL UYARI: BU YANLI┼×

Asl─▒nda yorum eklemenin ve ├Âzelliklerin i├žinde kalman─▒n bir yolu var (ek ayr─▒┼čt─▒r─▒c─▒ya gerek yok). Herhangi bir ayr─▒┼čt─▒rma olmadan insan taraf─▒ndan okunabilecek yorumlara yol a├žmayacak.

A┼ča─č─▒dakileri k├Ât├╝ye kullanabilirsiniz:

├ľnemsiz bo┼čluklara herhangi bir jetondan ├Ânce veya sonra izin verilir. Bo┼čluk, a┼ča─č─▒daki kod noktalar─▒ndan birinin veya daha fazlas─▒n─▒n herhangi bir dizisidir: karakter tablosu (U + 0009), sat─▒r besleme (U + 000A), sat─▒r ba┼č─▒ (U + 000D) ve bo┼čluk (U + 0020).

Kesin bir ┼čekilde, yorum eklemek i├žin bunu k├Ât├╝ye kullanabilirsiniz. ├ľrne─čin: Yorumunuzu bir sekmeyle ba┼člat─▒n ve sonland─▒r─▒n. Yorumu base3'te kodlay─▒n ve bunlar─▒ temsil etmek i├žin di─čer bo┼čluk karakterlerini kullan─▒n. ├ľrne─čin.

 010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
 

( hello base three ASCII'de) Ancak 0 yerine bo┼čluk kullan─▒n, 1 sat─▒r besleme i├žin ve 2 kullan─▒m i├žin sat─▒r ba┼č─▒ kullan─▒n.

Bu sadece sizi bir├žok okunaks─▒z bo┼člukla b─▒rakacakt─▒r (an─▒nda kodlamak / kod ├ž├Âzmek i├žin bir IDE eklentisi yapmazsan─▒z).

Bunu asla denemedim, bariz nedenlerden dolay─▒ ve siz de yapmamal─▒s─▒n─▒z.


13







strip-json-comments Projemiz i├žin kullan─▒yoruz . Gibi bir ┼čey destekler:

 /*
 * Description 
*/
{
    // rainbows
    "unicorn": /* ÔŁĄ */ "cake"
}
 

Basit├že npm install --save strip-json-comments kurmak ve kullanmak gibi:

 var strip_json_comments = require('strip-json-comments')
var json = '{/*rainbows*/"unicorn":"cake"}';
JSON.parse(strip_json_comments(json));
//=> {unicorn: 'cake'}
 

12


2014-11-27





Bir JSON ├Â─česini par├žalara ay─▒rmak i├žin "kukla yorum" sat─▒rlar─▒ ekliyorum:

 {

"#############################" : "Part1",

"data1"             : "value1",
"data2"             : "value2",

"#############################" : "Part2",

"data4"             : "value3",
"data3"             : "value4"

}
 

11







JSON kendi ba┼č─▒na yorumlara izin vermiyor. Muhakeme JSON kullanamamas─▒ i├žin tamamen aptalca kendisini tamamen muhakeme ortadan kald─▒r─▒r hangi, yorum olu┼čturmak i├žin, ve y├╝kler i├žin hi├ž sebepsiz ayr─▒┼čt─▒r─▒c─▒ veri alan─▒ tam olarak ayn─▒ sonucu ve bunlar gibi potansiyel sorunlar,: JSON yorumlarla dosya.

Yorum eklemeye ├žal─▒┼č─▒rsan─▒z ( // veya /* */ veya kullanarak # ), o zaman baz─▒ ayr─▒┼čt─▒r─▒c─▒lar ba┼čar─▒s─▒z olur, ├ž├╝nk├╝ bu kesinlikle JSON belirtiminde bulunmaz. Yani bunu asla yapmamal─▒s─▒n .

├ľrne─čin, g├Âr├╝nt├╝ i┼čleme sistemimin g├Âr├╝nt├╝ notlar─▒n─▒ ve bunlarla ilgili baz─▒ temel bi├žimlendirilmi┼č (yorum) bilgilerini kaydetti─či bir ├Ârnek :

 {
    "Notations": [
        {
            "anchorX": 333,
            "anchorY": 265,
            "areaMode": "Ellipse",
            "extentX": 356,
            "extentY": 294,
            "opacity": 0.5,
            "text": "Elliptical area on top",
            "textX": 333,
            "textY": 265,
            "title": "Notation 1"
        },
        {
            "anchorX": 87,
            "anchorY": 385,
            "areaMode": "Rectangle",
            "extentX": 109,
            "extentY": 412,
            "opacity": 0.5,
            "text": "Rect area\non bottom",
            "textX": 98,
            "textY": 385,
            "title": "Notation 2"
        },
        {
            "anchorX": 69,
            "anchorY": 104,
            "areaMode": "Polygon",
            "extentX": 102,
            "extentY": 136,
            "opacity": 0.5,
            "pointList": [
                {
                    "i": 0,
                    "x": 83,
                    "y": 104
                },
                {
                    "i": 1,
                    "x": 69,
                    "y": 136
                },
                {
                    "i": 2,
                    "x": 102,
                    "y": 132
                },
                {
                    "i": 3,
                    "x": 83,
                    "y": 104
                }
            ],
            "text": "Simple polygon",
            "textX": 85,
            "textY": 104,
            "title": "Notation 3"
        }
    ],
    "imageXW": 512,
    "imageYW": 512,
    "imageName": "lena_std.ato",
    "tinyDocs": {
        "c01": "JSON image notation data:",
        "c02": "-------------------------",
        "c03": "",
        "c04": "This data contains image notations and related area",
        "c05": "selection information that provides a means for an",
        "c06": "image gallery to display notations with elliptical,",
        "c07": "rectangular, polygonal or freehand area indications",
        "c08": "over an image displayed to a gallery visitor.",
        "c09": "",
        "c10": "X and Y positions are all in image space. The image",
        "c11": "resolution is given as imageXW and imageYW, which",
        "c12": "you use to scale the notation areas to their proper",
        "c13": "locations and sizes for your display of the image,",
        "c14": "regardless of scale.",
        "c15": "",
        "c16": "For Ellipses, anchor is the  center of the ellipse,",
        "c17": "and the extents are the X and Y radii respectively.",
        "c18": "",
        "c19": "For Rectangles, the anchor is the top left and the",
        "c20": "extents are the bottom right.",
        "c21": "",
        "c22": "For Freehand and Polygon area modes, the pointList",
        "c23": "contains a series of numbered XY points. If the area",
        "c24": "is closed, the last point will be the same as the",
        "c25": "first, so all you have to be concerned with is drawing",
        "c26": "lines between the points in the list. Anchor and extent",
        "c27": "are set to the top left and bottom right of the indicated",
        "c28": "region, and can be used as a simplistic rectangular",
        "c29": "detect for the mouse hover position over these types",
        "c30": "of areas.",
        "c31": "",
        "c32": "The textx and texty positions provide basic positioning",
        "c33": "information to help you locate the text information",
        "c34": "in a reasonable location associated with the area",
        "c35": "indication.",
        "c36": "",
        "c37": "Opacity is a value between 0 and 1, where .5 represents",
        "c38": "a 50% opaque backdrop and 1.0 represents a fully opaque",
        "c39": "backdrop. Recommendation is that regions be drawn",
        "c40": "only if the user hovers the pointer over the image,",
        "c41": "and that the text associated with the regions be drawn",
        "c42": "only if the user hovers the pointer over the indicated",
        "c43": "region."
    }
}
 

10







JSON'un ge├žerli oldu─ču iyi bir ├ž├Âz├╝m (kesmek) var, ancak T├ťM DURUMLARDA ├çALI┼×MAYACAK (a┼ča─č─▒daki a├ž─▒klamalara bak─▒n─▒z). Sadece ayn─▒ anahtar─▒ iki kez (veya daha fazla) yap─▒n. ├ľrne─čin:

 {
  "param" : "This is the comment place",
  "param" : "This is value place",
}
 

B├Âylece JSON bunu ┼č├Âyle anlayacakt─▒r:

 {
  "param" : "This is value place",
}
 

10