1
2
3
4
5
6
7 package org.mule.module.json;
8
9 import org.mule.routing.AbstractSplitter;
10
11 import java.util.ArrayList;
12 import java.util.Iterator;
13 import java.util.List;
14
15 import org.codehaus.jackson.JsonNode;
16 import org.codehaus.jackson.node.ArrayNode;
17 import org.codehaus.jackson.node.ValueNode;
18
19
20
21
22
23
24
25
26
27 public class JsonNodeExpressionEvaluator extends JsonExpressionEvaluator
28 {
29
30 protected Object extractResultFromNode(JsonNode result)
31 {
32 if (result instanceof ValueNode)
33 {
34 return result.getValueAsText();
35 }
36 if (result instanceof ArrayNode)
37 {
38 List parts = new ArrayList<String>();
39 for (Iterator<JsonNode> i = ((JsonNode) result).getElements(); i.hasNext();)
40 {
41 JsonNode arrayNode = i.next();
42 parts.add(extractResultFromNode(arrayNode));
43 }
44 return parts;
45 }
46 else
47 {
48 return result;
49 }
50 }
51
52 public String getName()
53 {
54 return "json-node";
55 }
56 }