【发布时间】:2016-12-09 13:53:57
【问题描述】:
我正在为我团队的 Slack 开发一个机器人,但到目前为止我的搜索结果都是空的。我正在从 API 检索 JSON 对象,并且它返回正常。我要做的是根据另一个属性是否与传递给函数的变量匹配来获取对象元素的属性值。更详细地说,我正在尝试基于classHash 检索characterId。我正在尝试这个,但它不起作用。这会导致 characterId 未定义。
if data.characters[0].characterBase.classHash is classHash
characterId = data.characters[0].characterBase.characterId
else if data.characters[1].characterBase.classHash is classHash
characterId = data.characters[1].characterBase.characterId
else if data.characters[2].characterBase.classHash is classHash
characterId = data.characters[2].characterBase.characterId
JSON对象如下:
"characters": [
{
"characterBase": {
"membershipId": "4611686018451933949",
"membershipType": 2,
"characterId": "2305843009322984539",
"dateLastPlayed": "2016-07-31T02:53:56Z",
"minutesPlayedThisSession": "130",
"minutesPlayedTotal": "40010",
"powerLevel": 335,
"raceHash": 3887404748,
"genderHash": 3111576190,
"classHash": 2271682572}
},
{
"characterBase": {
"membershipId": "4611686018451933949",
"membershipType": 2,
"characterId": "2305843009340115467",
"dateLastPlayed": "2016-06-22T00:28:46Z",
"minutesPlayedThisSession": "108",
"minutesPlayedTotal": "11113",
"powerLevel": 333,
"raceHash": 2803282938,
"genderHash": 2204441813,
"classHash": 671679327}
},
{
"characterBase": {
"membershipId": "4611686018451933949",
"membershipType": 2,
"characterId": "2305843009327058547",
"dateLastPlayed": "2016-06-12T23:30:01Z",
"minutesPlayedThisSession": "62",
"minutesPlayedTotal": "9831",
"powerLevel": 334,
"raceHash": 898834093,
"genderHash": 3111576190,
"classHash": 3655393761}
}
我正在尝试获取characters[].characterBase 的characterId,其中characters[].characterBase.classHash 等于传入的那个。假设我传入2271682572 作为classHash,我想返回与@匹配的字符ID 987654330@,在本例中为2305843009322984539
谁能帮助我或指出正确的方向?
【问题讨论】:
-
如果您的意思是根据变量
classHash的字符串value 键入characterBase,那么您需要使用[]属性访问器而不是@ 987654335@ 像这样:data.characters[0].characterBase[classHash]。否则,不清楚你的问题是什么。 -
那行不通。我将添加我正在处理的 JSON 对象的一部分。
-
请解释 a) 你的代码在做什么和 b) 你想让它做什么。从您问题中的描述来看,它根本不清楚。
-
我已经更新了问题。希望它能增加更多的清晰度......我很难弄清楚措辞。
标签: coffeescript slack hubot