成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端Pua: JSON API還有二次封裝的必要嗎?

開發(fā) 前端
JSON 是 JavaScript Object Notation 的縮寫,最初是被設(shè)計(jì)為 JavaScript 的一個(gè)子集,因其和編程語(yǔ)言無(wú)關(guān),所以成為了一種開放標(biāo)準(zhǔn)的常見數(shù)據(jù)格式。

[[438577]]

JSON 是 JavaScript Object Notation 的縮寫,最初是被設(shè)計(jì)為 JavaScript 的一個(gè)子集,因其和編程語(yǔ)言無(wú)關(guān),所以成為了一種開放標(biāo)準(zhǔn)的常見數(shù)據(jù)格式。雖然 JSON 是源自于JavaScript,但到目前很多編程語(yǔ)言都有了 JSON 解析的庫(kù),如 C、Java、Python 等。

雖然 「javascript」 的 JSON API 內(nèi)置了兩種方法方便我們快捷的處理數(shù)據(jù)格式轉(zhuǎn)換:

  • 「JSON.parse()」 用于將一個(gè) JSON 字符串轉(zhuǎn)換為 JavaScript 對(duì)象
  • 「JSON.Stringify()」 用于將 JavaScript 值轉(zhuǎn)換為 JSON 字符串

但也存在不少限制, 比如:

  • JSON.Stringify 無(wú)法序列化 「函數(shù)」, 「正則表達(dá)式」 等
  • JSON.parse 無(wú)法反序列化具有 「函數(shù)」, 「正則表達(dá)式」 等格式的數(shù)據(jù)
  • JSON.Stringify 和JSON.parse 性能問題
  • JSON.Stringify 和JSON.parse 解析出錯(cuò)導(dǎo)致整個(gè)系統(tǒng) pua

這些問題我們不得不從 「二次封裝」 的角度去解決.

第3個(gè)問題社區(qū)已經(jīng)有比較可靠的解決方案可以來解決 JSON 方法的性能問題, 其核心思想就是 「結(jié)構(gòu)化json定義」. 比如我們最常討論的 JSON Schema, simdjson 就是一個(gè)不錯(cuò)的方案.

第四個(gè)問題也有解決方案, 就是在使用 JSON.Stringify 和JSON.parse 的地方包一層 try catch, 缺點(diǎn)就是每次調(diào)用都需要包 try catch, 不太符合前端 er 們的簡(jiǎn)約風(fēng).

所以分析了這么多, 針對(duì)復(fù)雜業(yè)務(wù)場(chǎng)景, 我們非常有必要二次封裝 「JSON API」 !

在上篇文章中我介紹了解決 1 和 2 問題的方案, 感興趣的可以參考:

前端進(jìn)階: 如何用javascript存儲(chǔ)函數(shù)?

該 json 解析器基于原生JSON API進(jìn)行的上層封裝, 支持序列化函數(shù), 正則類型

  • 支持原生 json api 調(diào)用方式nativeStringify, nativeParse
  • 支持序列化和反序列化函數(shù) stringify, fastStringify, parse
  • 支持序列化和反序列化正則 stringify, fastStringify, parse
  • 內(nèi)置開箱即用的工具方法
    • 判斷函數(shù)類型 isFunc
    • 判斷對(duì)象類型 isObj
    • 判斷數(shù)組類型 isArr
    • 判斷對(duì)象或數(shù)組類型 isArrOrObj
    • 判斷正則類型 isRegExp

同時(shí)方案中也解決了 4 中提到的問題, 并且支持操作后的回調(diào), 使用方法如下:

安裝 xijs

  1. yarn add xijs 

使用

  1. import { parser } from 'xijs'
  2.  
  3. const door = { 
  4.   a: 1, 
  5.   b: function () {}, 
  6.   c: { 
  7.     c1: 'h5-dooring'
  8.     c2: () => {}, 
  9.     c3: { 
  10.       c: '3fvc'
  11.       d: { 
  12.         dd: () => {}, 
  13.         ee: /[a-z]/g, 
  14.       }, 
  15.     }, 
  16.   }, 
  17.   d: /[0-9]/g, 
  18. }; 
  19.  
  20. // 將對(duì)象序列化 
  21. parser.stringify(door); 
  22.  
  23. // 結(jié)果如下: 
  24. // { 
  25. // "a": 1, 
  26. // "b""__xfunc__function b() {}"
  27. // "c": { 
  28. //  "c1""h5-dooring"
  29. //  "c2""__xfunc__function c2() {}" 
  30. // } 
  31. // } 
  32.  
  33. // 將json數(shù)據(jù)反解析成對(duì)象 
  34. parser.parse(parser.stringify(door)); 
  35.  
  36. // 結(jié)果如下: 
  37. // { 
  38. // a: 1, 
  39. // b: function b() {}, 
  40. // c: { 
  41. //  c1: "h5-dooring"
  42. //  c2: function c2() {} 
  43. // } 
  44. // } 

同時(shí) xijs 還在持續(xù)擴(kuò)充更有用的工具函數(shù), 讓業(yè)務(wù)開發(fā)更高效. 目前已集成了如下工具函數(shù):

  • 「store」 基于 localStorage 上層封裝的支持過期時(shí)間設(shè)置的緩存庫(kù), 支持操作回調(diào)
  • 「uuid」 生成唯一id, 支持設(shè)置長(zhǎng)度
  • 「randomStr」 生成指定個(gè)數(shù)的隨機(jī)字符串
  • 「formatDate」 開箱即用的時(shí)間格式化工具
  • 「debounce」 防抖函數(shù)
  • 「throttle」 節(jié)流函數(shù)
  • 「url2obj」 將url字符串轉(zhuǎn)換為對(duì)象
  • 「obj2url」 將對(duì)象轉(zhuǎn)換成編碼后的url字符串
  • 「isPC」 判斷設(shè)備是否為PC類型

 

github地址: https://github.com/MrXujiang/xijs

 

責(zé)任編輯:武曉燕 來源: 趣談前端
相關(guān)推薦

2021-05-05 11:34:09

前端開發(fā)技術(shù)熱點(diǎn)

2022-08-16 14:17:50

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)治理數(shù)據(jù)職場(chǎng)

2023-10-04 20:18:50

性價(jià)比SSDHDD

2023-04-17 09:32:29

IP地址MAC

2025-05-13 05:11:00

推理模型微調(diào)

2024-10-06 13:41:25

2024-01-06 17:53:11

前端框架方案

2022-10-17 08:03:47

封裝vue組件

2022-05-13 08:46:46

jsoneditorjson編輯器

2023-04-10 08:30:30

json編輯器typescript

2023-10-13 07:14:54

HDD存儲(chǔ)服務(wù)

2014-12-02 09:58:00

2024-03-13 13:39:21

2020-10-29 15:13:55

數(shù)字科技金融行業(yè)互聯(lián)網(wǎng)

2017-03-24 21:26:26

代碼架構(gòu)Java

2011-08-05 12:36:01

2018-03-16 08:22:01

區(qū)塊鏈API應(yīng)用程序

2013-08-08 16:25:08

項(xiàng)目加班

2021-09-15 15:50:46

hashmap算法軟件開發(fā)

2021-09-15 11:38:36

Hashmap二次算法列表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人国产精品久久 | 福利社午夜影院 | 91久久精品视频 | 国产精品视频网 | 国产精品一区二区三区四区 | av中文字幕网站 | 欧美午夜精品 | 国产精品久久久爽爽爽麻豆色哟哟 | 久草在线在线精品观看 | 欧美a级成人淫片免费看 | 成人免费视屏 | 成人免费小视频 | 亚洲精品乱码久久久久久蜜桃 | 丁香色婷婷| 国产一级在线 | xx视频在线观看 | 国产视频亚洲视频 | 欧美激情在线精品一区二区三区 | 日韩在线国产 | 综合久久综合久久 | 久久久91精品国产一区二区三区 | 婷婷精品| 欧美精品久久久久久久久久 | 自拍亚洲 | 亚洲大片 | 国产成人一区二区 | 五月综合久久 | 欧美精品一区二区三区在线播放 | www.操com| 九九爱这里只有精品 | 成人在线视频免费看 | 在线色网| 国产精品一区二区久久久久 | 欧美一区二区激情三区 | 亚洲欧美日韩电影 | 自拍偷拍中文字幕 | 91精品国产91久久综合桃花 | 成人在线中文字幕 | 精品久久久久久久久久久 | 99热首页 | 在线视频国产一区 |