diff --git a/pom.xml b/pom.xml
index fdabfee..641553c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
UTF-8
1.8
1.8
- 6e87b0dbdf
+ 07041c56da
1.3
5.7.1
4.4
diff --git a/src/main/java/io/frictionlessdata/datapackage/Package.java b/src/main/java/io/frictionlessdata/datapackage/Package.java
index e191aa1..bd3b917 100644
--- a/src/main/java/io/frictionlessdata/datapackage/Package.java
+++ b/src/main/java/io/frictionlessdata/datapackage/Package.java
@@ -438,22 +438,39 @@ public Object getProperty(String key) {
}
JsonNode jNode = jsonObject.get(key);
if (jNode.isArray()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference>() {});
+ return getProperty(key, new TypeReference>() {});
} else if (jNode.isTextual()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference() {});
+ return getProperty(key, new TypeReference() {});
} else if (jNode.isBoolean()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference() {});
+ return getProperty(key, new TypeReference() {});
} else if (jNode.isFloatingPointNumber()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference() {});
+ return getProperty(key, new TypeReference() {});
} else if (jNode.isIntegralNumber()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference() {});
+ return getProperty(key, new TypeReference() {});
} else if (jNode.isObject()) {
- return JsonUtil.getInstance().deserialize(jNode, new TypeReference