如何使用 JSON 键在 Node.js 中具有空格获取 JSON 对象值



这是我的JSON对象:

var EVENT_ID = {
"Enable Popup Blocker": "Sol_EnablePopupBlocker_IE",
"Disable Script Debug": "Sol_DisableScriptDebugger_IE",
"Clear History": "Sol_ClearHistory_IE",
"Reset Settings": "Reset_InternetExplorer_Settings_SA",
"Profile Issue": "Fix_Outlook_Profile_SA",
"Send Receive": "Fix_Send_Receive_Errors_Outlook_SA",
"Search Issue": "Fix_Search_Outlook_SA"
};

我正在尝试使用键访问 JSON 对象值,该值具有如下所示的空格

var eventID = JSON.stringify(req.body.result.parameters.solution); 
var aptEventName = EVENT_ID[eventID];

eventID"Profile Issue"

当我记录我的aptEventName变量时,它会抛出undefined的值。谁能告诉我,我哪里出错了?

一种可能的情况:当您再次对字符串值执行JSON.stringify()时,可能会发生这种情况。这就是为什么它将值抛出为未定义,所以不要在这里使用不必要的JSON.stringify()

var response = "response"
JSON.stringify(response)
""response"" 
^^        ^^ see extra quotes here   

var result = { "source": "agent", "resolvedQuery": "LPTP-KDUSHYANT", "speech": "", "action": "gethostname", "actionIncomplete": false, "parameters": { "solution": "Profile Issue", "hostname": "LPTP-KDUSHYANT" }}
var eventID = result.parameters.solution;
var EVENT_ID = {
"Enable Popup Blocker": "Sol_EnablePopupBlocker_IE",
"Disable Script Debug": "Sol_DisableScriptDebugger_IE",
"Clear History": "Sol_ClearHistory_IE",
"Reset Settings": "Reset_InternetExplorer_Settings_SA",
"Profile Issue": "Fix_Outlook_Profile_SA",
"Send Receive": "Fix_Send_Receive_Errors_Outlook_SA",
"Search Issue": "Fix_Search_Outlook_SA"
};
var aptEventName = EVENT_ID[eventID];
console.log(aptEventName)

JSON.stringify

字符串调用将返回带引号的字符串。不应对密钥进行 JSON 编码。由于字符串类型转换在执行对象字段访问时是隐式的,因此您可以键入它:

var eventID = req.body.result.parameters.solution;
var aptEventName = EVENT_ID[eventID];

你不应该使用stringify,它正在获取一个字符串并将该字符串转换为JSON。

var eventID =  JSON.stringify(req.body.result.parameters.solution); 

当你这样做时,你的字符串将是

var eventID = ""Profile Issue"";

所以当然你的对象中没有带引号的属性。因此,您需要做的是删除字符串位,只需引用对象中的属性即可。

var eventID = req.body.result.parameters.solution;
var aptEventName = EVENT_ID[eventID];

您可以使用以下方法获取值:

EVENT_ID["Clear History"]

我想你对req.body.result.parameters.solution.

最新更新