現(xiàn)在的網(wǎng)頁一般都是由html、css和javascript構(gòu)成的。隨著前端技術(shù)的發(fā)展,json扁平化的用法越來越多,它可以將復雜的json結(jié)構(gòu)轉(zhuǎn)化為簡單的鍵值對的形式,使其易于使用。而html的嵌套結(jié)構(gòu),雖然可以方便地實現(xiàn)網(wǎng)頁的層次結(jié)構(gòu)和樣式,但有時也會帶來問題,尤其是在后臺處理和數(shù)據(jù)交互方面。
// 例子: { "name": "Tom", "age": 25, "address": { "city": "Shanghai", "street": "Nanjing West Road" }, "hobbies": [ { "type": "sport", "name": "basketball" }, { "type": "music", "name": "guitar" } ] }
如果我們要用javascript來處理這個json數(shù)據(jù),經(jīng)常會遇到需要逐級訪問嵌套屬性的情況,比如訪問“address”下的“city”,需要寫成“data.address.city”,這樣就會有很多的嵌套。而使用json扁平化的方式,可以將嵌套的結(jié)構(gòu)展開為一維,比如可將“address.city”轉(zhuǎn)化為“address_city”,這樣就可以方便地訪問與操作了。
// 轉(zhuǎn)換后的例子: { "name": "Tom", "age": 25, "address_city": "Shanghai", "address_street": "Nanjing West Road", "hobbies_0_type": "sport", "hobbies_0_name": "basketball", "hobbies_1_type": "music", "hobbies_1_name": "guitar" }
在使用json扁平化的時候,需要遵循一定的規(guī)則,比如屬性名的連接符可以使用“_”或“-”等符號,但不能使用“.”,否則會與屬性訪問符混淆。
總之,json扁平化可以極大地方便前端開發(fā)的工作,并且也有助于后臺數(shù)據(jù)的傳輸和處理。而html的嵌套結(jié)構(gòu)則可以方便地實現(xiàn)網(wǎng)頁的層次結(jié)構(gòu)和樣式,可以說兩者各有千秋,規(guī)范使用可以帶來更好的效果。
上一篇json扁平化制作