问题描述
我的json解析出现问题,当我尝试遍历json数据时,我一直无法定义。
[{"id":"5f99b552b2c25b37596871e3","value":{"number":"1"},"idCustomField":"5f998faf4bb46e574ac28514","idModel":"5f907f344b88092b1d0e03d1","modelType":"card"}]
var response2 = UrlFetchApp.fetch(url + "cards/" + card.id + "/customFieldItems?"+ key_and_token);
customfielditems = JSON.parse(response2.getContentText()).actions;
当我尝试遍历对象时,得到的对象的值不确定。循环如下:
for (var m=0; m < customfielditems.length; m++) {
customfielditemid = customfielditems[m].value
}
请介意,我什至没有提供价值。我收到一条错误消息,指示未定义“ .length”。聚焦对象之后,对象本身(customfielditems)即使在解析后也未定义。
在我做错事情时会喜欢链接或建议。
解决方法
从脚本的URL,我认为您可能正在使用"Get Custom Field Items for a Card"。当看到“获取卡片的自定义字段项目”的正式文档时,响应值似乎为Array<CustomFieldItems>
。样本响应值如下。
[
{
"id": "5abbe4b7ddc1b351ef961414","value": {
"checked": "true"
},"idCustomField": "5abbe4b7ddc1b351ef961414","idModel": "5abbe4b7ddc1b351ef961414","modelType": "card"
}
]
从上述回答值中,我了解到您的response2.getContentText()
是您问题中[{"id":"5f99b552b2c25b37596871e3","value":{"number":"1"},"idCustomField":"5f998faf4bb46e574ac28514","idModel":"5f907f344b88092b1d0e03d1","modelType":"card"}]
的值。如果我的理解是正确的,则在这种情况下,customfielditems
中的customfielditems = JSON.parse(response2.getContentText()).actions;
是undefined
。我认为您的问题的原因是由于此。
当您要从响应值中检索value
时,如何进行以下修改?
修改后的脚本:
var response2 = UrlFetchApp.fetch(url + "cards/" + card.id + "/customFieldItems?"+ key_and_token);
customfielditems = JSON.parse(response2.getContentText());
for (var m=0; m < customfielditems.length; m++) {
customfielditemid = customfielditems[m].value;
}
-
当您要检索
1
的{{1}}的值时,请按以下方式修改{"number":"1"}
。customfielditemid = customfielditems[m].value;
注意:
- 在此修改后的脚本中,它假定您已经能够使用
customfielditemid = Object.values(customfielditems[m].value); // or Object.values(customfielditems[m].value)[0];
使用API。请注意这一点。