SORU
17 EKİM 2010, Pazar


Sözdizimi belgeleyen JSON yapısı

Json biçimi karşı yazıyorum bir apı tarafından döndürülen belge için çalışıyorum ve eğer json yapı belgeleri için herhangi bir popüler biçimi varsa bilmek isterim.

Not falan test doğrulamak için çalışmıyorum, sadece belgeler için bunu kullanıyorum. Olmayan sabitler yorum eklemek için bazı yollar(öğeleri her zaman w/ aynı değer) güzel olurdu.

Bu tamamen şu anda kullanıyorum düzeni düşünce değil:

Plain names refer to identifiers or types.
Some types have type-comment
Strings that appear to be constant(always returned for that type of request) strings are "str"
Constant Numbers would be just the number
Constant null is null
Booleans are true/false for constant booleans or Boolean otherwise
[a,b,c] are lists with 3 items a,b,c
[...  ...] is a list of repeating elements of some types/constants/patterns
{a:A,b:B,c:c} and {... ...}  is the same for a dictionary.

örnek:

story          := [header,footer]
header         := {"data":realHeader,"kind":"Listing"}
realHeader     := {"after": null, "before": null, "children": [{"data": realRealHeader, "kind": "t3"}], "modhash": ""}
footer         := {"data":AlmostComments,"kind":"Listing"}
AlmostComments := {"data": {"after": null, "before": null, "children": comments, "modhash": ""}, "kind": "t1"}
comments       := [...{"data":comment, "kind":"t1"}...]

realRealHeader :=
{"author": string,
"clicked": boolean,
"created": int,
"created_utc": int,
"domain": "code.reddit.com",
"downs": int,
"hidden": boolean,
"id": string-id,
"is_self": boolean,
"levenshtein": null,
"likes": null,
"media": null,
"media_embed": { },
"name": string-id,
"num_comments": int,
"over_18": false,
"permalink": string-urlLinkToStoryStartingFrom/r,
"saved": false,
"score": int,
"selftext": string,
"selftext_html": string-html,
"subreddit": string-subredditname,
"subreddit_id": string-id,
"thumbnail": "",
"title": string,
"ups": int,
"url": "http://code.reddit.com/"
}


comments := {
"author": string,
"body": string-body_html-wout-html,
"body_html": string-html-formated,
"created": int,
"created_utc": int,
"downs": int,
"id": string-id,
"levenshtein": null,
"likes": null,
"link_id": string-id,
"name": string-id",
"parent_id": string-id,
"replies": AlmostComments or null,
"subreddit": string-subredditname,
"subreddit_id": string-id,
"ups": int
}

CEVAP
6 Ocak 2011, PERŞEMBE


Teoride JSON Schema bu amaca hizmet edebilir, ama pratikte bunu mu emin değilim. Umarım kayda değer.

Bundan başka, benim kişisel görüşüm beri JSON ağırlıklı olarak kullanılan nesneleri aktarma, belgeleme eşdeğer nesnelerin dili kullanan istemci (Java, C#, çeşitli betik dilleri) olabilir yapmak en mantıklı ... sonuçta, bu tür nesneler genellikle eşleştirilmiş/ilişkili JSON ve geri. Ve Dokümantasyon araçları mevcuttur ne olursa olsun kullanabilirsiniz, Java (perldoc Perl için, Oksijen c vs vs) için Javadoc gibi.

Belirterek arayüzleri için de yardımcı olabilecek WADL (Açıklama Dili Web Uygulama) var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • DrePwn

    DrePwn

    22 Temmuz 2011
  • Joshua Benedict

    Joshua Bened

    26 EKİM 2013