fix json path node class cast exception
This commit is contained in:
parent
046d313581
commit
77e4ab6a5e
@ -70,7 +70,7 @@ public class TbJsonPathNode implements TbNode {
|
|||||||
public void onMsg(TbContext ctx, TbMsg msg) throws ExecutionException, InterruptedException, TbNodeException {
|
public void onMsg(TbContext ctx, TbMsg msg) throws ExecutionException, InterruptedException, TbNodeException {
|
||||||
if (!TbJsonPathNodeConfiguration.DEFAULT_JSON_PATH.equals(this.jsonPathValue)) {
|
if (!TbJsonPathNodeConfiguration.DEFAULT_JSON_PATH.equals(this.jsonPathValue)) {
|
||||||
try {
|
try {
|
||||||
JsonNode jsonPathData = jsonPath.read(msg.getData(), this.configurationJsonPath);
|
Object jsonPathData = jsonPath.read(msg.getData(), this.configurationJsonPath);
|
||||||
ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msg.getMetaData(), JacksonUtil.toString(jsonPathData)));
|
ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msg.getMetaData(), JacksonUtil.toString(jsonPathData)));
|
||||||
} catch (PathNotFoundException e) {
|
} catch (PathNotFoundException e) {
|
||||||
ctx.tellFailure(msg, e);
|
ctx.tellFailure(msg, e);
|
||||||
|
|||||||
@ -85,7 +85,7 @@ public class TbJsonPathNodeTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void givenPrimitiveMsg_whenOnMsg_thenVerifyOutput() throws Exception {
|
void givenJsonMsg_whenOnMsg_thenVerifyOutputJsonPrimitiveNode() throws Exception {
|
||||||
String data = "{\"Attribute_1\":22.5,\"Attribute_2\":100}";
|
String data = "{\"Attribute_1\":22.5,\"Attribute_2\":100}";
|
||||||
VerifyOutputMsg(data, 1, 100);
|
VerifyOutputMsg(data, 1, 100);
|
||||||
|
|
||||||
@ -93,6 +93,17 @@ public class TbJsonPathNodeTest {
|
|||||||
VerifyOutputMsg(data, 2, "StringValue");
|
VerifyOutputMsg(data, 2, "StringValue");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenJsonMsg_whenOnMsg_thenVerifyJavaPrimitiveOutput() throws Exception {
|
||||||
|
config.setJsonPath("$.attributes.length()");
|
||||||
|
nodeConfiguration = new TbNodeConfiguration(mapper.valueToTree(config));
|
||||||
|
node.init(ctx, nodeConfiguration);
|
||||||
|
|
||||||
|
String data = "{\"attributes\":[{\"attribute_1\":10},{\"attribute_2\":20},{\"attribute_3\":30},{\"attribute_4\":40}]}";
|
||||||
|
VerifyOutputMsg(data, 1, 4);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void givenJsonArray_whenOnMsg_thenVerifyOutput() throws Exception {
|
void givenJsonArray_whenOnMsg_thenVerifyOutput() throws Exception {
|
||||||
String data = "{\"Attribute_1\":22.5,\"Attribute_2\":[{\"Attribute_3\":22.5,\"Attribute_4\":10.3}, {\"Attribute_5\":22.5,\"Attribute_6\":10.3}]}";
|
String data = "{\"Attribute_1\":22.5,\"Attribute_2\":[{\"Attribute_3\":22.5,\"Attribute_4\":10.3}, {\"Attribute_5\":22.5,\"Attribute_6\":10.3}]}";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user