Noob question
I am using the snmp function to collect data via oid lists. I have extracted the data and used the json function to parse the data into a json string seen below.
msg.payload : string[81]
"[{"oid":"1.3.6.1.4.1.38783.3.3.1.1.1.0","type":2,"value":53800,"tstr":"Integer"}]"
I am trying to write a function to strip out "value":53800
from this string and output it in msg.payload
.
I have tried below but it returns
"TypeError: Cannot assign to read only property
'_msgid'
of"value":53700,"tstr":"Integer"}]"
var msg = msg.payload;
var value = msg.substr(49,62);
return value;
Noob question
I am using the snmp function to collect data via oid lists. I have extracted the data and used the json function to parse the data into a json string seen below.
msg.payload : string[81]
"[{"oid":"1.3.6.1.4.1.38783.3.3.1.1.1.0","type":2,"value":53800,"tstr":"Integer"}]"
I am trying to write a function to strip out "value":53800
from this string and output it in msg.payload
.
I have tried below but it returns
"TypeError: Cannot assign to read only property
'_msgid'
of"value":53700,"tstr":"Integer"}]"
var msg = msg.payload;
var value = msg.substr(49,62);
return value;
Share
Improve this question
edited Jul 6, 2017 at 10:17
Ataur Rahman Munna
3,9171 gold badge25 silver badges35 bronze badges
asked Jul 6, 2017 at 9:32
MichaelMichael
411 gold badge1 silver badge2 bronze badges
2 Answers
Reset to default 9Don't try and split the string up like that, it's too prone to errors if the value lengths ever change.
Instead run the message through the JSON node before the function node.
This will parse the string and generate a proper JSON object.
You can then access value field as such:
var value = msg.payload[0].value;
msg.payload = value;
return msg;
The Cannot assign to read only property
error is because you returned a string from the function. You need to return a message JSON object not a string. My example sets the msg.payload
to the required value.
For your JSON the following code will work in the function:
var value = msg.payload.value;
msg.payload = value;
return msg;