<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 前端js把json字符串轉json對象(java對象轉json對象命令)


    最近在逛編程問題解答的時候,看到這樣的提問:如何將一個JSON數組類型的字符串轉換為JSON數組,然后遍歷數組取出JSON對象,最后在JS中取出里面的屬性。在這里給同樣有疑問的朋友做下解答,當然歡迎大神留言區留下更好的回答。

    首先我們追本溯源問一下,JSON究竟是什么東西?為什么JSON就是易于數據交換?本文將從以下幾個方面去理解JSON:

    首先是對“JSON是一種輕量的數據交換格式”的理解;

    然后來看經常被混為一談的JSON和JS對象的區別;

    json字符串轉換成json數組并遍歷屬性值;

    如何將json字符串轉換成json數組并遍歷屬性值

    什么是JSON?

    JSON是一種輕量級的數據交換格式。

    如果沒有去過JSON的官方介紹可以去一下這里,官方介紹已經很清楚地表述了JSON是什么,我將JSON是什么提煉成以下幾個方面:

    1. 一種數據格式

    什么是格式?就是規范你的數據要怎么表示,舉個栗子,有個人叫“二百六”,身高“160cm”,體重“60kg”,現在你要將這個人的這些信息傳給別人或者別的什么東西,你有很多種選擇:

    如何將json字符串轉換成json數組并遍歷屬性值

    以上所有選擇,傳遞的數據是一樣的,但是你可以看到形式是可以各式各樣的,這就是各種不同格式化后的數據,JSON是其中一種表示方式。

    2. 基于文本的數據格式

    JSON是基于文本的數據格式,相對于基于二進制的數據,所以JSON在傳遞的時候是傳遞符合JSON這種格式(至于JSON的格式是什么我們第二部分再說)的字符串,我們常會稱為“JSON字符串”。

    3. 輕量級的數據格式

    在JSON之前,有一個數據格式叫xml,現在還是廣泛在用,但是JSON更加輕量,如xml需要用到很多標簽,像上面的例子中,你可以明顯看到xml格式的數據中標簽本身占據了很多空間,而JSON比較輕量,即相同數據,以JSON的格式占據的帶寬更小,這在有大量數據請求和傳遞的情況下是有明顯優勢的。

    4. 被廣泛地用于數據交換

    輕量已經是一個用于數據交換的優勢了,但更重要的JSON是易于閱讀、編寫和機器解析的,即這個JSON對人和機器都是友好的,而且又輕,獨立于語言(因為是基于文本的),所以JSON被廣泛用于數據交換。

    以前端JS進行ajax的POST請求為例,后端PHP處理請求為例:

    • 前端構造一個JS對象,用于包裝要傳遞的數據,然后將JS對象轉化為JSON字符串,再發送請求到后端;
    • 后端PHP接收到這個JSON字符串,將JSON字符串轉化為PHP對象,然后處理請求。
    如何將json字符串轉換成json數組并遍歷屬性值

    可以看到,相同的數據在這里有3種不同的表現形式,分別是前端的JS對象、傳輸的JSON字符串、后端的PHP對象,JS對象和PHP對象明顯不是一個東西,但是由于大家用的都是JSON來傳遞數據,大家都能理解這種數據格式,都能把JSON這種數據格式很容易地轉化為自己能理解的數據結構,這就方便啦,在其他各種語言環境中交換數據都是如此。

    如何將json字符串轉換成json數組并遍歷屬性值

    經常被混為一談的JSON和JS對象

    很多時候都聽到“JSON是JS的一個子集”這句話,而且這句話我曾經也一直這么認為,每個符合JSON格式的字符串你解析成js都是可以的,直到后來發現了一個奇奇怪怪的東西…

    1. 兩個本質不同的東西為什么那么密切

    JSON和JS對象本質上完全不是同一個東西,就像“斑馬線”和“斑馬”,“斑馬線”基于“斑馬”身上的條紋來呈現和命名,但是斑馬是活的,斑馬線是非生物。

    同樣,”JSON”全名”JavaScript Object Notation”,所以它的格式(語法)是基于JS的,但它就是一種格式,而JS對象是一個實例,是存在于內存的一個東西。

    說句玩笑話,如果JSON是基于PHP的,可能就叫PON了,形式可能就是這樣的了[‘propertyOne’ => ‘foo’, ‘propertyTwo’ => 42,],如果這樣,那么JSON可能現在是和PHP比較密切了。

    此外,JSON是可以傳輸的,因為它是文本格式,但是JS對象是沒辦法傳輸的,在語法上,JSON也會更加嚴格,但是JS對象就很松了。

    那么兩個不同的東西為什么那么密切,因為JSON畢竟是從JS中演變出來的,語法相近。

    2. JSON格式別JS對象語法表現上嚴格在哪

    先就以“鍵值對為表現的對象”形式上,對比下兩者的不同,至于JSON還能以怎樣的形式表現,對比完后再羅列。

    如何將json字符串轉換成json數組并遍歷屬性值

    可以看到,相對于JS對象,JSON的格式更嚴格,所以大部分寫的JS對象是不符合JSON的格式的。

    json字符串轉換成json數組并遍歷屬性值

    方式一:使用Iterator迭代器遍歷取值

    如何將json字符串轉換成json數組并遍歷屬性值

    方法二:使用for循環

    如何將json字符串轉換成json數組并遍歷屬性值

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费