我正在创建我的第一个地图缩减脚本。我正在获取输入阶段运行项目搜索,输出:
{ "recordType": "程序集项", “id”:“XXXXX”, “价值观”:{ “internalid.memberItem”:{ “值”:“XXX”, “文本”:“XXX” }, "itemid.memberitem": "此处显示会员商品", “类型.memberitem”:{ "value": "InvtPart", "text": "库存物品" }, "memberquantity.memberitem": "", "itemid": "组装", “类型”: { "value": "组装", “text”:“装配/物料清单” }, "现有数量": "", “承诺数量”:“”, “订单数量”:“25”, “数量延期”:“34”, “重新订购点”:“4”, “优先股级别”:“6”, “成员”: ””, "会员数量": "60", "memberbaseunit": "", "数量.memberItem": "9509", "数量提交.memberItem": "3656", "数量onorder.memberItem": "", “数量backordered.memberItem”:“” } }
到地图阶段。我将 JSON 解析为“var searchResult”,然后创建一个变量:
var memberItem = searchResult.values.itemid.memberitem;
问题是我无法弄清楚为什么它会在每个结果上抛出错误“TypeError:无法从未定义中读取属性“memberItem””,即使“itemid.memberitem”键和值位于每个结果集中。
有什么想法吗?谢谢
我花了几个小时试图解决这个问题,但没有成功。反复试验非常耗时,因为每次尝试其他操作时我都必须执行脚本。此时我已经没有想法了。
简短回答,使用:
var memberItem = searchResult.values['itemid.memberitem'];
如果您格式化 JSON:
{
"recordType": "assemblyitem",
"id": "XXXXX",
"values": {
"internalid.memberItem": {
"value": "XXX",
"text": "XXX"
},
"itemid.memberitem": "Member Item is displayed here",
"type.memberitem": {
"value": "InvtPart",
"text": "Inventory Item"
},
"memberquantity.memberitem": "",
"itemid": "Assembly",
"type": {
"value": "Assembly",
"text": "Assembly/Bill of Materials"
},
"quantityonhand": "",
"quantitycommitted": "",
"quantityonorder": "25",
"quantitybackordered": "34",
"reorderpoint": "4",
"preferredstocklevel": "6",
"memberof": "",
"memberquantity": "60",
"memberbaseunit": "",
"quantityonhand.memberItem": "9509",
"quantitycommitted.memberItem": "3656",
"quantityonorder.memberItem": "",
"quantitybackordered.memberItem": ""
}
}
您会发现,您在
itemid
对象中没有 values
属性
相反,您有一个名为
itemid.memberitem
的属性,它看起来像搜索连接。