国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

? ? ????? JS ???? JSON ??? ??

JSON ??? ??

Dec 17, 2016 pm 02:58 PM
JSON ??

?? ??

JSON? ? ?? ??? ?????.

1. ??/? ?? ?????. ?? ????? ??, ???, ???, ??, ?? ???, ? ?? ?? ?? ??? ?????.

2. ??? ??? ? ?????. ???? ????? ??? ?????.

?? ?

??? ??? JSON? JavaScript ??? ??? ??? ??? ???? ??? ? ???, ? ???? ?? ?? ?? ??? ? ????. ?? ??? ????????? ???? ? ??????? ??? ?????? ?????. ? ???? ?? ??? ???? JavaScript? ?? ?? ??? ? ??? JSON? "??/? ?"?? ? ??? ??? ??? ? ????. ?? ??, ??? ?? ? ??? ?? ??? ??? ??? ??? ? ????.

??/? ?? ?????

?? ??? ??? ??? ?? JSON? ???? "??/? ?"? ??? ? ????: { "firstName" : "Brett " }

? ?? ?? ????? ??? ??? ?? ??? "??/? ?"?? ? ?? ??? ?????. firstName=Brett

??? ?? ?? " JSON? ???? ?? ??/? ?? ?? ???? ????? ?????. ?? ??? ?? ?? "??/? ?"? ???? ???? ??? ? ????.

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }

??? "??/? ?"? ?? ? ??? ??? ? ?? JSON? ???? ?? ?? ????. ?? ??, ?? ? ?? ??? ???? ???? ??? ???. ???? ?? ???? ??????.

??? ?????.

? ??? ???? ?? ?? JSON? ???? ?? ?? ??? ???? ?? ? ????. ?? ??, ?? ?? ??? ????? ??? ?????. XML??? ?? ?? ? ?? ??? ?????. ???? ??/? ?(? ???? ?? ???? ? ?? ??)? ???? ?? ?? ??? ??? ????? ? ??? person1 ???? ???? ???. -??.

JSON? ???? ?? ?? ???? ???? ??????.

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}

??? ???? ????. ? ??? people??? ??? ??? ?? ?? ? ??? ?????. ? ??? ??, ?, ??? ??? ???? ??? ?? ??????. ?? ???? ??? ???? ???? ?? ??? ???? ??? ?????. ?? ?? ?(?? ?? ??? ??)? ??? ??? ???? ??? ? ????.

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
] }

??? ?? ????? ?? ?? ?? ???? ?????. ? ??? ?? ?? ?????. ?. ??? ???? ?? ??/? ?? ?? ??(?????, ??? ? ???)?? ?? ? ??? ??? ???? ???. JSON? ??? ????? JSON ?? ??? ???? ???? ??? ??? ? ????.

JSON ??? ???? ??? ? ???? ?? ?? ??? ?? ??? ????. ??? ??? ??? ?? ??? ???? ???? ??? ?? ? ???, ??? ??? ?? ???? ??? ?? ????.

?? ??

JSON ??? ??? ?? JavaScript?? ???? ?? ?? ?????. JSON? ?? JavaScript ?????. ?, JavaScript?? JSON ???? ???? ? ??? API? ??? ???? ????.

JSON ???? ??? ??

?? ?? ? JavaScript ??? ???? ??? JSON ?? ??? ???? ?? ??? ? ????.

var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
] }

??? ?? ?????. ?? ???? ?? ? JSON ??? ???? ?????. ??? ???? ???? ??? ?? ???? ?? ?????? ???? ????.

??? ??

盡管看起來不明顯,但是上面的長(zhǎng)字符串實(shí)際上只是一個(gè)數(shù)組;將這個(gè)數(shù)組放進(jìn) JavaScript 變量之后,就可以很輕松地訪問它。實(shí)際上,只需用點(diǎn)號(hào)表示法來表示數(shù)組元素。所以,要想訪問 programmers 列表的第一個(gè)條目的姓氏,只需在 JavaScript 中使用下面這樣的代碼:

people.programmers[0].lastName;

注意,數(shù)組索引是從零開始的。所以,這行代碼首先訪問 people變量中的數(shù)據(jù);然后移動(dòng)到稱為 programmers的條目,再移動(dòng)到第一個(gè)記錄([0]);最后,訪問 lastName鍵的值。結(jié)果是字符串值 “McLaughlin”。

下面是使用同一變量的幾個(gè)示例。

people.authors[1].genre // Value is "fantasy"
people.musicians[3].lastName // Undefined. This refers to the fourth entry, and there isn't one
people.programmers[2].firstName // Value is "Elliotte"

利用這樣的語法,可以處理任何 JSON 格式的數(shù)據(jù),而不需要使用任何額外的 JavaScript 工具包或 API。

修改 JSON 數(shù)據(jù)

正如可以用點(diǎn)號(hào)和括號(hào)訪問數(shù)據(jù),也可以按照同樣的方式輕松地修改數(shù)據(jù):

people.musicians[1].lastName = "Rachmaninov";

在將字符串轉(zhuǎn)換為 JavaScript 對(duì)象之后,就可以像這樣修改變量中的數(shù)據(jù)。

轉(zhuǎn)換回字符串

當(dāng)然,如果不能輕松地將對(duì)象轉(zhuǎn)換回本文提到的文本格式,那么所有數(shù)據(jù)修改都沒有太大的價(jià)值。在 JavaScript 中這種轉(zhuǎn)換也很簡(jiǎn)單:

String newJSONtext = people.toJSONString();

這樣就行了!現(xiàn)在就獲得了一個(gè)可以在任何地方使用的文本字符串,例如,可以將它用作 Ajax 應(yīng)用程序中的請(qǐng)求字符串。

更重要的是,可以將任何JavaScript 對(duì)象轉(zhuǎn)換為 JSON 文本。并非只能處理原來用 JSON 字符串賦值的變量。為了對(duì)名為 myObject的對(duì)象進(jìn)行轉(zhuǎn)換,只需執(zhí)行相同形式的命令:

String myObjectInJSON = myObject.toJSONString();

這就是 JSON 與本系列討論的其他數(shù)據(jù)格式之間最大的差異。如果使用 JSON,只需調(diào)用一個(gè)簡(jiǎn)單的函數(shù),就可以獲得經(jīng)過格式化的數(shù)據(jù),可以直接使用了。對(duì)于其他數(shù)據(jù)格式,需要在原始數(shù)據(jù)和格式化數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換。即使使用 Document Object Model 這樣的 API(提供了將自己的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為文本的函數(shù)),也需要學(xué)習(xí)這個(gè) API 并使用 API 的對(duì)象,而不是使用原生的 JavaScript 對(duì)象和語法。

最終結(jié)論是,如果要處理大量 JavaScript 對(duì)象,那么 JSON 幾乎肯定是一個(gè)好選擇,這樣就可以輕松地將數(shù)據(jù)轉(zhuǎn)換為可以在請(qǐng)求中發(fā)送給服務(wù)器端程序的格式。

概念比較

JSON和XML的比較

◆可讀性

JSON和XML的可讀性可謂不相上下,一邊是簡(jiǎn)易的語法,一邊是規(guī)范的標(biāo)簽形式,很難分出勝負(fù)。

◆可擴(kuò)展性

XML天生有很好的擴(kuò)展性,JSON當(dāng)然也有,沒有什么是XML能擴(kuò)展,而JSON卻不能。不過JSON在Javascript主場(chǎng)作戰(zhàn),可以存儲(chǔ)Javascript復(fù)合對(duì)象,有著xml不可比擬的優(yōu)勢(shì)。

◆編碼難度

XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發(fā)人員一樣能很快的寫出想要的xml文檔和JSON字符串,不過,xml文檔要多很多結(jié)構(gòu)上的字符。

◆解碼難度

XML的解析方式有兩種:

一是通過文檔模型解析,也就是通過父標(biāo)簽索引出一組標(biāo)記。例如:xmlData.getElementsByTagName("tagName"),但是這樣是要在預(yù)先知道文檔結(jié)構(gòu)的情況下使用,無法進(jìn)行通用的封裝。

另外一種方法是遍歷節(jié)點(diǎn)(document 以及 childNodes)。這個(gè)可以通過遞歸來實(shí)現(xiàn),不過解析出來的數(shù)據(jù)仍舊是形式各異,往往也不能滿足預(yù)先的要求。

凡是這樣可擴(kuò)展的結(jié)構(gòu)數(shù)據(jù)解析起來一定都很困難。

JSON也同樣如此。如果預(yù)先知道JSON結(jié)構(gòu)的情況下,使用JSON進(jìn)行數(shù)據(jù)傳遞簡(jiǎn)直是太美妙了,可以寫出很實(shí)用美觀可讀性強(qiáng)的代碼。如果你是純粹的前臺(tái)開發(fā)人員,一定會(huì)非常喜歡JSON。但是如果你是一個(gè)應(yīng)用開發(fā)人員,就不是那么喜歡了,畢竟xml才是真正的結(jié)構(gòu)化標(biāo)記語言,用于進(jìn)行數(shù)據(jù)傳遞。

而如果不知道JSON的結(jié)構(gòu)而去解析JSON的話,那簡(jiǎn)直是噩夢(mèng)。費(fèi)時(shí)費(fèi)力不說,代碼也會(huì)變得冗余拖沓,得到的結(jié)果也不盡人意。但是這樣也不影響眾多前臺(tái)開發(fā)人員選擇JSON。因?yàn)閖son.js中的toJSONString()就可以看到JSON的字符串結(jié)構(gòu)。當(dāng)然不是使用這個(gè)字符串,這樣仍舊是噩夢(mèng)。常用JSON的人看到這個(gè)字符串之后,就對(duì)JSON的結(jié)構(gòu)很明了了,就更容易的操作JSON。

以上是在Javascript中僅對(duì)于數(shù)據(jù)傳遞的xml與JSON的解析。在Javascript地盤內(nèi),JSON畢竟是主場(chǎng)作戰(zhàn),其優(yōu)勢(shì)當(dāng)然要遠(yuǎn)遠(yuǎn)優(yōu)越于xml。如果JSON中存儲(chǔ)Javascript復(fù)合對(duì)象,而且不知道其結(jié)構(gòu)的話,我相信很多程序員也一樣是哭著解析JSON的。

◆實(shí)例比較

XML和JSON都使用結(jié)構(gòu)化方法來標(biāo)記數(shù)據(jù),下面來做一個(gè)簡(jiǎn)單的比較。

用XML表示中國(guó)部分省市數(shù)據(jù)如下:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中國(guó)</name>
    <province>
        <name>黑龍江</name>
     <cities>
            <city>哈爾濱</city>
            <city>大慶</city>
        </cities>
    </province>
    <province>
        <name>廣東</name>
        <cities>
            <city>廣州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
</country>

用JSON表示如下:

{
{name:"中國(guó)", province:[ { name:"黑龍江", cities:{ city:["哈爾濱","大慶"] },
{name:"廣東", cities:{ city:["廣州","深圳","珠海"] } 
}

編碼的可讀性,xml有明顯的優(yōu)勢(shì),畢竟人類的語言更貼近這樣的說明結(jié)構(gòu)。json讀起來更像一個(gè)數(shù)據(jù)塊,讀起來就比較費(fèi)解了。不過,我們讀起來費(fèi)解的語言,恰恰是適合機(jī)器閱讀,所以通過json的索引.province[0].name就能夠讀取“黑龍江”這個(gè)值。

編碼的手寫難度來說,xml還是舒服一些,好讀當(dāng)然就好寫。不過寫出來的字符JSON就明顯少很多。去掉空白制表以及換行的話,JSON就是密密麻麻的有用數(shù)據(jù),而xml卻包含很多重復(fù)的標(biāo)記字符。

?

JSON在線校驗(yàn)工具

前言

JSON格式取代了xml給網(wǎng)絡(luò)傳輸帶來了很大的便利,但是卻沒有了xml的一目了然,尤其是json數(shù)據(jù)很長(zhǎng)的時(shí)候,我們會(huì)陷入繁瑣復(fù)雜的數(shù)據(jù)節(jié)點(diǎn)查找中。

但是國(guó)人的一款在線工具 BeJson 給眾多程序員帶來了一陣涼風(fēng)。

功能簡(jiǎn)介

1. JSON格式化校驗(yàn)

很多人在得到JSON數(shù)據(jù)后,一時(shí)沒有辦法判斷JSON數(shù)據(jù)格式是否正確,是否少或多符號(hào)而導(dǎo)致程序不能解析,這個(gè)功能正好能幫助大家來完成JSON格式的校驗(yàn)。

2. JSON視圖

想必很多程序員都會(huì)遇到當(dāng)找一個(gè)節(jié)點(diǎn)的時(shí)候,會(huì)發(fā)現(xiàn)如果直接對(duì)著一行行數(shù)據(jù)無從下手,就算知道哪個(gè)位置,還要一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)的往下找,萬一一不留神又得從頭開始找的麻煩事。

有了這個(gè)功能,一切JSON數(shù)據(jù)都會(huì)變成視圖格式,一目了然,什么對(duì)象下有多少數(shù)組,一個(gè)數(shù)組下有多少對(duì)象。

這個(gè)功能非常實(shí)用。不光有視圖功能還有格式化、壓縮、轉(zhuǎn)義、校驗(yàn)功能??傊軓?qiáng)大。

3. 壓縮轉(zhuǎn)義

程序員在寫JSON語句測(cè)試用例的時(shí)候,很多時(shí)候?yàn)榱朔奖阒苯訉懥藗€(gè)JSON字符串做測(cè)試,但是又陷入了無止境的雙引號(hào)轉(zhuǎn)義的麻煩中。這款功能集壓縮、轉(zhuǎn)義于一身,讓你在寫測(cè)試用例的時(shí)候,如魚得水。

4. JSON在線編輯器

如果你現(xiàn)在的電腦剛巧沒有裝你所熟悉的編輯器,如果你想針對(duì)拿到的JSON數(shù)據(jù)的某個(gè)節(jié)點(diǎn)做數(shù)據(jù)修改時(shí),這個(gè)功能可以滿足你的需求。

5. 在線發(fā)送JSON數(shù)據(jù)

大家都知道,JSON用的最多的還是web項(xiàng)目的開發(fā),那你要測(cè)試一個(gè)接口是否能準(zhǔn)確的接受JSON數(shù)據(jù),那你就得寫一個(gè)頁(yè)面發(fā)送JSON字符串,重復(fù)的做著這件事。隨著這個(gè)功能的橫空出世,你可以擺脫寫測(cè)試頁(yè)面了,因?yàn)檫@個(gè)功能可以將指定的JSON數(shù)據(jù)發(fā)送指定的url,方便吧。

6. JSON著色

很多人在寫文檔時(shí),總希望文檔能一目了然,但是面對(duì)著白底黑字的JSON數(shù)據(jù)總是提不起精神沒關(guān)系,使用這個(gè)功能,所有的關(guān)鍵字都會(huì)被著色,數(shù)據(jù)結(jié)構(gòu)一目了然。

7. JSON-XML互轉(zhuǎn)

顧名思義,將JSON格式的數(shù)據(jù)轉(zhuǎn)化成XML格式、或者XML格式的數(shù)據(jù)轉(zhuǎn)化成JSON格式,一切都不是問題。


更多JSON 數(shù)據(jù)格式相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
node.js?? HTTP ????? ??? node.js?? HTTP ????? ??? Jul 13, 2025 am 02:18 AM

Node.js?? HTTP ??? ???? ? ?? ???? ??? ????. 1. ?? ????? ????? ??? ??? ? ?? ????? ?? ?? ? https.get () ??? ?? ??? ??? ? ?? ????? ?? ??? ?????. 2.axios? ??? ???? ? ?? ??????. ??? ??? ??? ??? ??? ??? ???/???, ?? JSON ??, ???? ?? ?????. ??? ?? ??? ????? ?? ????. 3. ?? ??? ??? ??? ??? ???? ???? ??? ??? ???? ?????.

JavaScript ??? ?? : ?? ? ?? JavaScript ??? ?? : ?? ? ?? Jul 13, 2025 am 02:43 AM

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

JavaScript Time Object, ??? Google Chrome? EACTEXE, ? ?? ? ???? ?????. JavaScript Time Object, ??? Google Chrome? EACTEXE, ? ?? ? ???? ?????. Jul 08, 2025 pm 02:27 PM

?????, JavaScript ???! ?? ? JavaScript ??? ?? ?? ?????! ?? ?? ??? ??? ??? ? ????. Deno?? Oracle? ?? ??, ??? JavaScript ?? ??? ????, Google Chrome ???? ? ??? ??? ???? ?????. ?????! Deno Oracle? "JavaScript"??? ????? Oracle? ?? ??? ??? ??????. Node.js? Deno? ??? ? Ryan Dahl? ??? ?????? ???? ????? JavaScript? ??? ???? Oracle? ????? ???? ?????.

?? ??? : JavaScript? ??, ?? ?? ? ?? ????? ?? ??? : JavaScript? ??, ?? ?? ? ?? ????? Jul 08, 2025 am 02:40 AM

??? JavaScript?? ??? ??? ?????? ?? ???????. ?? ??, ?? ?? ? ??? ??? ?? ????? ????? ?????. 1. ?? ??? ??? ????? ???? ??. ()? ?? ??? ??? ?????. ?. ()? ?? ??? ?? ??? ??? ?? ? ? ????. 2. ?? ??? .catch ()? ???? ?? ??? ??? ?? ??? ??????, ??? ???? ???? ????? ??? ? ????. 3. Promise.all ()? ?? ????? (?? ?? ?? ? ??????? ??), Promise.Race () (? ?? ??? ?? ?) ? Promise.AllSettled () (?? ??? ???? ??)

?? API? ???? ??? ???? ??? ?????? ?? API? ???? ??? ???? ??? ?????? Jul 08, 2025 am 02:43 AM

Cacheapi? ?????? ?? ???? ??? ???? ???, ?? ??? ??? ?? ???? ? ??? ?? ? ???? ??? ??????. 1. ???? ????, ??? ??, ?? ?? ?? ???? ???? ??? ? ????. 2. ??? ?? ?? ??? ?? ? ? ????. 3. ?? ?? ?? ?? ?? ??? ??? ?? ?????. 4. ??? ???? ?? ?? ???? ?? ?? ?? ?? ?? ???? ?? ?? ??? ??? ? ????. 5. ?? ???? ??, ??? ??? ? ??? ??, ?? ??? ? ?? ???? ???? ???? ? ?? ?????. 6.?? ??? ?? ?? ?? ??, ???? ?? ? HTTP ?? ????? ?????? ???????.

JS Roundup : JavaScript ??? ??? ?? ?? ??? JS Roundup : JavaScript ??? ??? ?? ?? ??? Jul 08, 2025 am 02:24 AM

JavaScript? ??? ??? ?? ??, ? ? ? ?? ???? ???? ??? ??? ?????. 1. ?? ??? ?? ??? ???? ??? ??? ??? ??? ?? WebAPI? ?????. 2. WebAPI? ??????? ??? ?? ? ? ??? ?? ??? (??? ?? ?? ???? ??)? ????. 3. ??? ??? ?? ??? ?? ??? ?????. ?? ??? ??? ????? ??? ??? ?? ? ???? ?????. 4. ???? ?? (? : Promise. 5. ??? ??? ???? ?? ???? ???? ?? ?? ?? ??? ????? ? ??????.

JavaScript DOM ????? ??? ?? ? ? ?? ??? ????? JavaScript DOM ????? ??? ?? ? ? ?? ??? ????? Jul 08, 2025 am 02:36 AM

??? ??? ?? ???? ?? ??? ???? ?? ??? ??? ?? ??? ?? ??? ?????. 1. ??? ?? : ?? ??? ?? ? ? ???? ?? ??? ???? ??? ???? ??????. ?? ??, ??? ?? ? ? ?? ??? ?? ? ?? ??? ??????. 2. ??? ?? : ??? ???? ?? ?? ??? ?? ???? ????? ? ?? ?????? ???? ????? ? ?? ?? ??? true? ??????. 3. ?? ???? ?? ?? ??? ?? ??, ?? ??? ? ?? ???? ?????. 4. DOM ??? ???? ??, ?? ? ??? ? ??? ??? ?? ???? ?? ???? ?????.

MAP ? ?? ??? ?? ??? JS ??? ? MAP ? ?? ??? ?? ??? JS ??? ? Jul 10, 2025 am 11:41 AM

JavaScript ???? ? ? ?? ??? ???? ??? ???? ?? ??? ????. 1. ??? ???? ??? ??, ??, ??? ?? ? ??? ??? ?? ? ? ????. 2. ?? ? findIndex? ?? ?? ?? ???? ?? ? ?????. 3. ??? ??? ????? ?? ?? ??? ???? ? ?????. 4. ??? ?? ? ? ??? ?? ??? ?????. 5. ???? ??? ?? ??? ??? ? ?? ?????????. ??? ??? ????? ???? ????? ????.

See all articles