Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Node.js中有空格的JSON键获取JSON对象值_Javascript_Json_Node.js - Fatal编程技术网

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

Javascript 如何使用Node.js中有空格的JSON键获取JSON对象值,javascript,json,node.js,Javascript,Json,Node.js,这是我的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", "Profi

这是我的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
值为
“配置文件问题”


当我记录我的
aptEventName
变量时,它抛出的值为
undefined
。有人能告诉我哪里出了问题吗?

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

EVENT_ID["Clear History"]
我想你有点不对劲
req.body.result.parameters.solution

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

EVENT_ID["Clear History"]
我想你有点不对劲
req.body.result.parameters.solution
一种可能的情况:当您再次对字符串值执行
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”,“actioncomplete”:false,“parameters”:{“solution”:“Profile Issue”,“hostname”:“LPTP-KDUSHYANT”}
var eventID=result.parameters.solution;
变量事件\u ID={
“启用弹出窗口阻止程序”:“Sol_EnablePopupLocker_IE”,
“禁用脚本调试”:“Sol_DisableScriptDebugger_IE”,
“清除历史”:“Sol_ClearHistory_IE”,
“重置设置”:“重置InternetExplorer\u设置\u SA”,
“配置文件问题”:“修复Outlook配置文件”,
“发送-接收”:“修复\u发送\u接收\u错误\u Outlook\u SA”,
“搜索问题”:“修复\u搜索\u Outlook\u SA”
};
var aptEventName=EVENT_ID[eventID];

console.log(aptEventName)
一种可能的情况:当您再次对字符串值执行
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”,“actioncomplete”:false,“parameters”:{“solution”:“Profile Issue”,“hostname”:“LPTP-KDUSHYANT”}
var eventID=result.parameters.solution;
变量事件\u ID={
“启用弹出窗口阻止程序”:“Sol_EnablePopupLocker_IE”,
“禁用脚本调试”:“Sol_DisableScriptDebugger_IE”,
“清除历史”:“Sol_ClearHistory_IE”,
“重置设置”:“重置InternetExplorer\u设置\u SA”,
“配置文件问题”:“修复Outlook配置文件”,
“发送-接收”:“修复\u发送\u接收\u错误\u Outlook\u SA”,
“搜索问题”:“修复\u搜索\u Outlook\u SA”
};
var aptEventName=EVENT_ID[eventID];

console.log(aptEventName)
JSON.stringify
调用字符串将返回引号中的字符串。您不应该对密钥进行JSON编码。由于字符串类型转换在执行对象字段访问时是隐式的,因此您可以按如下方式键入:

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

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\"";
当然,你的对象中没有带引号的属性。因此,您需要做的是删除stringify位,只需引用对象中的属性

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\"";
当然,你的对象中没有带引号的属性。因此,您需要做的是删除stringify位,只需引用对象中的属性

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

你能发布你在req.body.result.parameters.solution中得到了什么吗?这是我的request.body.result结构{“source”:“agent”,“resolvedQuery”:“LPTP-KDUSHYANT”,“speech”:“action”:“gethostname”,“actioncomplete”:false,“parameters”:{“solution”:“Profile Issue”,“hostname”:“LPTP-KDUSHYANT”}对于req.body.result.parameters.solution,我将获得一次
事件\u ID[req.body.result.parameters.solution]
它仍然让我无法定义error@Arulvelu但是当我在这里测试它时,它工作得很好。在这里运行代码段。你能发布在req.body.result.parameters.solution中得到什么吗?这是我的request.body.result结构{“source”:“agent”,“resolvedQuery”:“LPTP-KDUSHYANT”,“speech”:“action”:“gethostname”,“actioncomplete”:false,“parameters”:{“solution”:“Profile Issue”,“hostname”:“LPTP-KDUSHYANT”}对于req.body.result.parameters.solution,我正在获取此一次
事件的Profile issuery ID[req.body.result.parameters.solution]
它仍然让我无法定义error@Arulvelu但是当我在这里测试它时,它工作得很好。在这里运行代码段它抛出我未定义的代码你能发布在req.body.result.parameters.solution中得到什么吗?它抛出我未定义的代码你能发布在req.body.result.parameters.solution中得到什么吗??