Intentando crear un objeto a partir de un objeto existente usando jsonata. Cuando los datos y la expresión se colocan en jsonata excerciser, se genera el resultado correcto. Sin embargo, cuando lo ejecuto en el programa Javascript, se generan errores.
siguiente es código javascript
const data = { "compCode": "0006", "compState": "MH", "recvDocNo": "0075", "buCode": "AC", "branchCode": "001", "recvLines": [ { "lineNo": 1, "itemId": "00002", "qtyAccept": 10, "unitRate": 100, "basicVal": 1000, "taxableAmt": 1000, } ] }; let expr = { "compCode": compCode, "buCode": buCode, "lineNo": recvLines.lineNo, "itemId": recvLines.itemId }; jsonata(expr).evaluate(data);Recibo un error - ReferenceError: compCode no está definido
cuando lo cambio a data.compCode y todas las demás propiedades del objeto de manera similar, aparece un error TypeError: path.charAt no es una función. Alguien podría decirme como hacerlo funcionar. Gracias por adelantado
Parece que jsonata() espera una expresión de cadena como parámetro, que no se indica explícitamente en los documentos, pero se muestra en la sección In Nodejs .
const data = { "compCode": "0006", "compState": "MH", "recvDocNo": "0075", "buCode": "AC", "branchCode": "001", "recvLines": [ { "lineNo": 1, "itemId": "00002", "qtyAccept": 10, "unitRate": 100, "basicVal": 1000, "taxableAmt": 1000, }, { "lineNo": 2, "itemId": "00006", "qtyAccept": 10, "unitRate": 100, "basicVal": 1000, "taxableAmt": 1000, } ] }; let expr = `{ "compCode": compCode, "buCode": buCode, "lineNo": recvLines.lineNo, "itemId": recvLines.itemId }`; console.log(jsonata(expr).evaluate(data)); <script src="https://cdn.jsdelivr.net/npm/jsonata@1.8.5/jsonata.min.js"></script>