首頁 >web前端 >js教程 >javascript怎麼判斷是否是json格式

javascript怎麼判斷是否是json格式

青灯夜游
青灯夜游原創
2021-06-07 16:34:0732772瀏覽

判斷方法:先使用「JSON.parse(str)」語句解析指定資料str;然後使用「if(typeof obj =='object'&&obj)」語句判斷解析後資料的類型是否為“ object」類型;如果是,則str資料是json格式。

javascript怎麼判斷是否是json格式

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

js判斷字串是否為JSON格式

#不能簡單地使用來判斷字串是否為JSON格式:

function isJSON(str) {
    if (typeof str == 'string') {
        try {
            JSON.parse(str);
            return true;
        } catch(e) {
            console.log(e);
            return false;
        }
    }
    console.log('It is not a string!')    
}

以上try/catch的確實不能完全檢驗一個字串是JSON格式的字串,有許多例外:

JSON.parse('123'); // 123
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null

 我們知道,JS中的資料類型分為:字串、數字、布林、陣列、物件、Null、Undefined。

我們可以用如下的方法來判斷:

function isJSON(str) {
    if (typeof str == 'string') {
        try {
            var obj=JSON.parse(str);
            if(typeof obj == 'object' && obj ){
                return true;
            }else{
                return false;
            }

        } catch(e) {
            console.log('error:'+str+'!!!'+e);
            return false;
        }
    }
    console.log('It is not a string!')
}


console.log('123 is json? ' + isJSON('123'))
console.log('{} is json? ' + isJSON('{}'))
console.log('true is json? ' + isJSON('true'))
console.log('foo is json? ' + isJSON('"foo"'))
console.log('[1, 5, "false"] is json? ' + isJSON('[1, 5, "false"]'))
console.log('null is json? ' + isJSON('null'))
console.log('["1{211323}","2"] is json? ' + isJSON('["1{211323}","2"]'))
console.log('[{},"2"] is json? ' + isJSON('[{},"2"]'))
console.log('[[{},{"2":"3"}],"2"] is json? ' + isJSON('[[{},{"2":"3"}],"2"]'))

運行結果為:

> "123 is json? false"
> "{} is json? true"
> "true is json? false"
> "foo is json? false"
> "[1, 5, "false"] is json? true"
> "null is json? false"
> "["1{211323}","2"] is json? true"
> "[{},"2"] is json? true"
> "[[{},{"2":"3"}],"2"] is json? true"

所以得出以下結論:

JSON.parse()方法用來解析JSON字串,json.parse()將字串轉成json物件

#如果JSON.parse能夠轉換成功;並且轉換後的型別為object 且不等於null,那麼這個字串就是JSON格式的字串。

JSON.parse():

JSON 通常用於與服務端交換資料。

在接收伺服器資料時一般是字串。

我們可以使用 JSON.parse() 方法將資料轉換為 JavaScript 物件。

語法:

JSON.parse(text[, reviver])

參數說明:

  • #text:必要, 一個有效的 JSON 字串。

  • reviver: 可選,一個轉換結果的函數, 將為物件的每個成員呼叫此函數。

解析前要確保你的資料是標準的 JSON 格式,否則會解析出錯。

更多程式相關知識,請造訪:程式設計影片! !

以上是javascript怎麼判斷是否是json格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn