Difference between revisions of "Category:JSON/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{JSON}} == Overview == [http://www.json.org JSON] (JavaScript Object Notation) is a form of data representation that provides a standardised data exchange format using simpl...")
 
(it is a category)
 
Line 1: Line 1:
{{JSON}}
+
{{JSON(ctg)}}
 
 
== Overview ==
 
[http://www.json.org JSON] (JavaScript Object Notation) is a form of data representation that provides a standardised data exchange format using simple text. As the name suggests, it is based on a subset of the JavaScript programming language; however, it is completely language-agnostic. Besides being easy for humans to read and write, it is also easy for machines to parse and generate.
 
 
 
Compared to [[XML]], it is more human-readable.
 
 
 
== JSON Object ==
 
A JSON Object is nothing more than a collection of comma-separated name/value pairs (often called members) enclosed in curly brackets:
 
 
 
<syntaxhighlight lang="javascript">
 
{"name1":value1, "name2":value2 ...}
 
</syntaxhighlight>
 
 
 
To make it easier for humans to read and visualize, the name/value pairs are often listed vertically:
 
 
 
<syntaxhighlight lang="javascript">
 
{
 
"name1": value1,
 
"name2": value2
 
}</syntaxhighlight>
 
 
 
The name is supposed to be a string in double quotes, while the value can be any of the following:
 
 
 
* a simple string, numeric, boolean or null value (strings are enclosed in double quotes):<br /><code>{"id":1, "name":"John Doe", "married":false}</code>
 
 
 
* an array; which is a collection of comma-separated values in square brackets:<br /><code>{"primeNumbers":[2, 3, 5, 7, 11, 13, 17], "oddNumbers":[1,3,5,7]}</code>
 
 
 
* an object; which is a collection of name:value pairs enclosed in curly brackets:<br /><code>{"address":{"street":"145 Koinange Street", "City":"Nairobi", "Country":"Kenya"}}</code>
 
 
 
 
 
JSON objects can always be nested arbitrarily to create even more complex objects:
 
 
 
<syntaxhighlight lang="javascript">
 
{"user":
 
{ "userid": 1900,
 
"username": "jsmith",
 
"password": "secret",
 
"groups": [ "admins", "users", "maintainers"]
 
}
 
}
 
</syntaxhighlight>
 
 
 
 
 
== Valid JSON format ==
 
 
 
There are a few rules and guidelines that define the JSON syntax (see RFC 4627):
 
 
 
* JSON objects are encapsulated within opening and closing brackets <code>{ }</code>. An empty object can be represented by <code>{ }</code>
 
* Arrays are encapsulated within opening and closing square brackets <code>[ ]</code>. An empty array can be represented by <code>[ ]</code>
 
* A member is represented by a key-value pair
 
* The key of a member should be contained in double quotes
 
* Each member SHOULD have a unique key within an object structure
 
* The value of a member must be contained in double quotes if it is a string
 
* Boolean values are represented using the '''true''' or '''false''' literals in lower case
 
* Number values are represented using double-precision floating-point format; Scientific notation is supported; Numbers should not have leading zeroes
 
* "Offensive" characters in a string need to be escaped using the backslash character
 
* Null values are represented by the '''null''' literal in lower case
 
* Other object types, such as dates, are not natively supported and should be converted to strings; to be managed by the parser/client
 
* Each member of an object or each array value must be followed by a comma if it is not the last one
 
* The common extension for json files is '''.json'''
 
* The MIME type for json files is '''application/json'''
 
 
 
== Implementations ==
 
JSON implementation is not very strict, and a lot of leeway is granted to the client application and/or parser to enforce the guidelines. As usual when writing code:
 
* be liberal in what you accept
 
* be strict (adhering to the standard) in what you send.
 
 
 
There are two main implementations of JSON:
 
 
 
=== The official JSON Specification syntax ===
 
This implementation adheres strictly to the RFC 4627 guidelines above and does not allow deviation from the specification.
 
 
 
=== The Javascript syntax ===
 
This implementation follows the implementation of the Javascript programming language and as such allows for a few deviations from the official specification. For example:
 
 
 
#allows un-quoted keys eg <code> {name: "John Doe" }</code>
 
#allows single quotes for keys and/or string values; and a liberal mix of single and double quotes eg <code>{'name': "John Doe", "language":'Pascal'}</code>
 
#allows trailing comma after the last member of an array and/or object eg <code>{"keywords":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}</code>
 
 
 
== See also ==
 
 
 
* [[fcl-json]] package that implements JSON for FreePascal and Lazarus
 
* [http://www.json.org Official JSON website]
 
* [[Streaming JSON/de]] - (Original German article)
 
* [[Streaming JSON/ru]] - (Russian translation from English )
 
* [[Streaming JSON]]  - (English translation from original German)
 
 
 
[[Category:JSON]]
 
[[Category:JSON/ru]]
 

Latest revision as of 10:59, 14 March 2016

Pages in category "JSON/ru"

The following 3 pages are in this category, out of 3 total.