3分鐘掌握常用的JS操作JSON方法總結(jié)
工作中做了幾款自動(dòng)化測(cè)試工具都是跟日志讀取相關(guān),日志格式又大多數(shù)都是JSON,所以這里把常用的JS操作JSON的方法做了總結(jié)~~
一、概要簡(jiǎn)介
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,同時(shí),JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數(shù)據(jù)不須要任何特殊的 API 或工具包。
在JSON中,有兩種結(jié)構(gòu):對(duì)象和數(shù)組
1、對(duì)象以“{”開(kāi)始,“}”結(jié)束,“key/value”之間運(yùn)用 “,”分隔。
2、數(shù)組以“[”開(kāi)始,“]”結(jié)束。值之間運(yùn)用 “,”分隔。
二、JSON對(duì)象和JSON字符串的轉(zhuǎn)換
在數(shù)據(jù)傳輸過(guò)程中,JSON是以字符串的形式傳遞的,而JS操作的是JSON對(duì)象,所以,JSON對(duì)象和JSON字符串之間的相互轉(zhuǎn)換是關(guān)鍵。如下:
JSON字符串:
JSON對(duì)象:
1、將String轉(zhuǎn)化為JSON
2、將JSON轉(zhuǎn)化為String
三、JSON的輸出美化
上一節(jié)我們講到了將JSON對(duì)象轉(zhuǎn)化為JSON字符串可以用JSON.stringify() 方法,stringify還有個(gè)可選參數(shù)space(1<=space<=10),可以指定縮進(jìn)的空格數(shù),用于美化輸出;
我們看下代碼:
待美化的JSON:
美化后的輸出,是不是看得更清晰了:
四、JSON字符串的替換
日志處理中常常有這樣的字符串,如下:
需要經(jīng)過(guò)替換后,才能變成標(biāo)準(zhǔn)的JSON字符串格式,從而轉(zhuǎn)化成JSON對(duì)象。這里我們需要用JS實(shí)現(xiàn)replaceAll的功能,將所有的 ' \\" ' 替換成 ' " ' 。
代碼如下,這里的gm是固定的,g表示global,m表示multiple:
替換后的效果如下:
五、遍歷JSON對(duì)象和數(shù)組
1、遍歷JSON對(duì)象,代碼如下:
2、遍歷JSON數(shù)組,代碼如下:
六、遞歸遍歷JSON對(duì)象
為了實(shí)現(xiàn)一些復(fù)雜功能常常需要遞歸遍歷JSON對(duì)象,這里給出一個(gè)遞歸的例子,希望能給大家作為參考。
例子中要求處理JSON字符串,遇到數(shù)組的時(shí)候,數(shù)組中有超過(guò)一個(gè)對(duì)象,刪除第一個(gè)對(duì)象之后的所有對(duì)象,假設(shè)原始JSON如下:
要求處理后的數(shù)組中只保留第一個(gè)對(duì)象,處理完成后應(yīng)該如下圖所示:
遞歸代碼如下:
以上所述是小編給大家介紹的3分鐘掌握常用的JS操作JSON方法總結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
常見(jiàn)JS前端接口校驗(yàn)方式總結(jié)
作為一名優(yōu)秀的接口調(diào)用工程師,對(duì)接口的返回信息進(jìn)行校驗(yàn)是必不可少的,本文整理的是一些常用的校驗(yàn)方式,希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2023-05-05
JavaScript設(shè)計(jì)模式之裝飾者模式實(shí)例詳解
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之裝飾者模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了裝飾者模式的概念、原理及javascript定義、使用裝飾者模式的相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
JavaScript返回網(wǎng)頁(yè)中錨點(diǎn)數(shù)目的方法
這篇文章主要介紹了JavaScript返回網(wǎng)頁(yè)中錨點(diǎn)數(shù)目的方法,涉及javascript使用document.anchors獲取錨點(diǎn)數(shù)目的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
原生JavaScript實(shí)現(xiàn)Ajax異步請(qǐng)求
ajax現(xiàn)在是一種非常流行的技術(shù),現(xiàn)在雖然可以利用JQuery或者一些第三方插件甚至微軟提供的一些控件可以方面的實(shí)現(xiàn)ajax功能,但是明白其原理也是非常重要的,下面是來(lái)使用純javascript實(shí)現(xiàn)獲取服務(wù)器端的功能來(lái)展示如何使用純javascript實(shí)現(xiàn)ajax功能,以弄清其原理.2017-11-11
js實(shí)現(xiàn)數(shù)字跳動(dòng)到指定數(shù)字
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)數(shù)字跳動(dòng)到指定數(shù)字,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
JS簡(jiǎn)單實(shí)現(xiàn)DIV相對(duì)于瀏覽器固定位置不變的方法
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)DIV相對(duì)于瀏覽器固定位置不變的方法,涉及javascript針對(duì)頁(yè)面位置的運(yùn)算與動(dòng)態(tài)變換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
JavaScript自動(dòng)設(shè)置IFrame高度的小例子
JavaScript自動(dòng)設(shè)置IFrame高度的小例子,需要的朋友可以參考一下2013-06-06
Js+Flash實(shí)現(xiàn)訪問(wèn)剪切板操作
最近需要遇到了這個(gè)問(wèn)題點(diǎn)擊按鈕復(fù)制鏈接的功能果斷度娘谷哥,最后找到得解決方案ZeroClipBoard一款開(kāi)源得js+Flash實(shí)現(xiàn)得剪切板操作2012-11-11最新評(píng)論

