国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            適用于JavaScript和Node.js的JSON初學者教程

            發(fā)布時間:2021-11-24 點擊數:687

            介紹


            在后端和前端之間交換數據的最流行的格式之一是JSON,它用來表示JavaScript對象。它與常規(guī)JavaScript對象的外觀非常相似,但也有其獨特之處。它的讀音為“ jason”或“ jay-sun”,所以您可能會聽到一些不同的發(fā)音。


            JSON對其使用的編程語言沒有任何限制。您可以在這樣的組織中工作:有些后端服務是用Python編寫的,有些后端是Java的,前端是JS的,它們都可以完美地交換JSON消息。


            以JSON格式存儲數據


            首先JSON是一個字符串。這允許在需要時進行非常有效的數據壓縮。缺點是我們無法存儲循環(huán)數據結構,例如,引用自身的對象。


            (幾乎)所有內容都應使用引號引起來


            與JavaScript不同,您只應使用雙引號并將所有對象屬性包裝在其中。您不能使用單引號或反引號。


            在JS中,我們有一個像這樣的對象


            {  name: 'Jack',  isMarried: false,  age: 25, }


            而在JSON中,它將變成


            {  "name": "Jack",  "isMarried": false,  "age": 25 }


            請注意:在JavaScript對象中,在逗號后出現逗號age: 25,是可以接受的,但在JSON中則是不允許的。


            所有字段名稱都用雙引號引起來,但并非所有原始值都使用雙引號引起來。數字和布爾值不帶引號存儲。


            對象存儲在花括號中


            像在JS中一樣,花括號用于存儲對象。


            請注意,如果服務器以JSON格式響應,則期望它以對象響應。您不能只列出這些字段。它們都需要用大括號括起來才能成為JSON對象。


            數組存儲在方括號中


            一切都與JS中完全一樣,我們將數組的名稱用雙引號引起來,并且數組本身在方括號中表示。


            {

             "pets": ["Rex", "Sandy"]

            }


            再次注意,該行的末尾沒有逗號或分號。


            所有JSON對象數據都存儲為"key": “value”(“鍵”:“值”)對


            與JS中一樣,您只能將對添加key:value到對象。如果需要存儲多個不帶鍵的值,則需要一個數組。


            將JavaScript對象轉換為JSON并返回


            要將常規(guī)JS對象轉換為JSON字符串,您需要此JSON.stringify(obj)函數。無需安裝其他模塊即可使用。您向其傳遞一個對象,obj并獲得一個JSON對象作為輸出。


            const user = {  name: 'Jack',  isMarried: false,  age: 25, } const userJSON = JSON.stringify(user); console.log(userJSON); // {"name": "Jack", "isMarried": false, "age": 25}

            要從JSON轉換為常規(guī)對象,我們需要JSON.parse(s)函數。我們以JSON格式的字符串作為輸入,并返回一個普通的JS對象。


            const jsonString = '{"name": "Jack", "isMarried": false, "age": 25}';

            const parsedUser = JSON.parse(jsonString);


            console.log(parsedUser); // {name: 'Jack', isMarried: false, age: 25}


            Express.js和JSON


            如果您不熟悉Express,我將在后續(xù)的文章為您講解:


            如何創(chuàng)建Express服務器

            快速中間件和外部訪問

            由于我們知道JSON對象是一個字符串,因此我們可以非常輕松地修改服務器并發(fā)送一些對象而不是Hello, Express.js。


            假設我們需要將一個對象傳遞給前端


            {  name: 'Hero',  isLearning: true,  level: 'apprentice', }


            我們將通過幾種方式來做到這一點。在所有情況下,前端都會收到相同的內容,您可以在瀏覽器中通過請求進行驗證。


            普通字符串:

            server.get('/', (req, res) => {

             return res.send('{"name": "Hero", "isLearning": true, "level": "apprentice"}');

            })


            對象轉換為JSON.stringify:

            server.get('/', (req, res) => {

             const user = { name: 'Hero', isLearning: true, level: 'apprentice' };


            對象轉換為res.json:

            server.get('/', (req, res) => {  const user = { name: 'Hero', isLearning: true, level: 'apprentice' };  return res.json(user); })


            我會重復一遍。在所有情況下,結果都是相同的。我們發(fā)送狀態(tài)為200和字符串的響應,{"name": "Hero", "isLearning": true,"level": "apprentice"}收件人可以根據需要使用該字符串。


            老實說,res.send和res.json之間存在細微差別。如果使用,并且選擇,則會設置 一個特殊的標頭Content-Type。text/htmlres.sendapplication/jsonres.json


            res.json如果您有想要以JSON格式發(fā)送的對象,則使用此屬性。

            第三個示例是最方便的示例,因為我們不執(zhí)行任何不必要的操作。我們將對象傳遞給,res.json并在內部進行到JSON字符串的轉換。JSON.stringify在這種情況下,不需要像示例2一樣對進行額外的(顯式)調用。


            最后給大家分享一個學習全棧JavaScript的網站:


            https://js.coderslang.com/


            比較生動有趣的帶入性學習

            image.png