我是JS的新手,所以如果我的问题很难理解,那就对不起。 我正在用JS(电子)编写一个程序,该程序为我用C ++编写的另一个程序提供了用户界面,因此我基本上是用JavaScript重写它。
我想在我的代码中使用这个JSON变量(或它的任何名称)。
var ShowSecondsInSystemClock = '{"name":"ShowSecondsInSystemClock","Description":"Patches the System Tray clock to show seconds","ExplorerRestartRequired":"true","category":"UI-Tweaks","badges":"UITweaks"}'
然后我要在函数“ ShowSecondsInSystemClock”的参数为的地方使用此函数。
function TweakParser(TweakName, NeeddedReturn) {
if (NeeddedReturn == "Description") {
//I'm trying to use TweakName as the parameter of parse(),but it only
//accepts the name of the Tweak directly
var NeeddedTweakInfo = JSON.parse(TweakName)
return NeeddedTweakInfo.Description
}
}
由于会有很多调整,因此该特定功能的用例例如
//I use a non-existing tweak here for the example
TweakParser("RemoveArrowsFromShortcut","Description")
我现在想要TweakParser
做的是使用RemoveArrowsFromShortcut
作为JSON.parse()
的参数,但是它只直接接受JSON变量的名称,而当我输入第一个变量的名称时函数TweakParser()
的参数给我一个错误,因为参数(变量)本身不是JSON变量(或诸如此类的东西)。
所以我对你的问题是:
如何使用TweakParser()
的第一个参数包含的字符串作为JSON.parse()
函数的参数?
答案 0 :(得分:2)
您需要创建映射
就像架构'key': variable
示例:
{
'RemoveArrowsFromShortcut': ShowSecondsInSystemClock
}
完整示例:
var ShowSecondsInSystemClock = '{"name":"ShowSecondsInSystemClock","Description":"Patches the System Tray clock to show seconds","ExplorerRestartRequired":"true","category":"UI-Tweaks","badges":"UITweaks"}'
var mapping = {
RemoveArrowsFromShortcut: ShowSecondsInSystemClock
};
function TweakParser(TweakName, NeeddedReturn) {
if (NeeddedReturn == "Description") {
var NeeddedTweakInfo = JSON.parse(mapping[TweakName]); // PAY ATTENTION HERE
return NeeddedTweakInfo.Description
}
}
var result = TweakParser("RemoveArrowsFromShortcut","Description")
console.log('result', result)