簡體   English   中英

如果值為 null,如何通過 JSON 解析?

[英]How to pass the JSON parse if the value is null?

var newsearchdata = {
    companyIdList: JSON.parse($("#newSearchCompanyListID").val())
}

我正在解析 JSON 數組,如果值為 null 還請求 api。

您已將許多操作合並到一行中。 是否有某些原因您不創建始終返回干凈值的 function?

例如:

var newsearchdata = {
    companyIdList: parseData()
}

function parseData() {
   try {
     const val = JSON.parse($("#newSearchCompanyListID").val())
     const defaultBackup = whateveruwant
     return val ? val : defaultbackup
   } catch (e) {
     return variable that works 
   }
}

筆記:

JSON.parse 處理 null 值。 看這里:

JSON.parse 允許 null 作為值https://tc39.es/ecma262/#sec-json-object

24.5.1 JSON.parse ( text [, reviver ] ) 解析 function 解析 JSON 文本值。 JSON 格式表示文字、arrays,以及語法類似於 ECMAScript 文字、數組初始化器和 Object 初始化器的語法的對象。 解析后,JSON對象實現為ECMAScript對象。 JSON arrays 實現為 ECMAScript Array 實例。 JSON 字符串、數字、布爾值和 null 實現為 ECMAScript 字符串、數字、布爾值和 null。

可選的 reviver 參數是 function,它采用兩個參數,鍵和值。 它可以過濾和轉換結果。 使用解析生成的每個鍵/值對調用它,並使用其返回值而不是原始值。 如果它返回它收到的內容,則結構不會被修改。 如果它返回未定義,則從結果中刪除該屬性。

讓 jsonString 成為? ToString(文本)。 解析。 StringToCodePoints(jsonString) 作為 ECMA-404 中指定的 JSON 文本。 如果它不是該規范中定義的有效 JSON 文本,則拋出 SyntaxError 異常,讓 scriptString 為“(”,jsonString; 和“)。”的字符串連接,讓 script 為 ParseText(.StringToCodePoints(scriptString): Script )。 斷言。 腳本是一個解析節點。 讓完成成為評估腳本的結果。 在評估期間不得使用 B.3.1 中定義的擴展 PropertyDefinitionEvaluation 語義。 讓未過濾為完成:[[Value]],斷言,未過濾是字符串,數字,Boolean。 Null,或由 ArrayLiteral 或 ObjectLiteral 定義的 Object。 如果 IsCallable(reviver) 為真。 然后讓根。 OrdinaryObjectCreate(%Object,prototype%),設rootName為空String。 履行? CreateDataPropertyOrThrow(root, rootName, unfiltered)。 返回,InternalizeJSONProperty(root.rootName, reviver)。 否則,返回未過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM