diff --git a/pom.xml b/pom.xml
index 3eadbf2..df30134 100644
--- a/pom.xml
+++ b/pom.xml
@@ -141,15 +141,15 @@
             <scope>compile</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.johnzon</groupId>
-            <artifactId>johnzon-core</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.jcr.contentparser</artifactId>
+            <version>1.1.1-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-json_1.0_spec</artifactId>
-            <version>1.0-alpha-1</version>
+            <groupId>org.apache.johnzon</groupId>
+            <artifactId>johnzon-core</artifactId>
+            <version>1.0.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java b/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java
index 35155c9..95c8ab5 100644
--- a/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java
+++ b/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.maven.bundlesupport;
 
+import static org.apache.sling.jcr.contentparser.impl.JsonTicksConverter.tickToDoubleQuote;
+
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -55,7 +57,7 @@
      * @return JSON object
      */
     public static JsonObject parseObject(String jsonString) {
-        try (StringReader reader = new StringReader(jsonString);
+        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             return jsonReader.readObject();
         }
@@ -67,7 +69,7 @@
      * @return JSON array
      */
     public static JsonArray parseArray(String jsonString) {
-        try (StringReader reader = new StringReader(jsonString);
+        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             return jsonReader.readArray();
         }
@@ -79,7 +81,7 @@
      * @throws javax.json.JsonException when JSON structure is invalid
      */
     public static void validateJsonStructure(String jsonString) {
-        try (StringReader reader = new StringReader(jsonString);
+        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             jsonReader.read();
         }
diff --git a/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java b/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java
index 2261045..b6e0b01 100644
--- a/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java
+++ b/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java
@@ -56,6 +56,7 @@
     public void testValidateJsonStructure() {
         validateJsonStructure("{\"prop1\":123}");
         validateJsonStructure("[{\"prop1\":123}]");
+        validateJsonStructure("{'prop1':123}");
     }
 
     @Test(expected=JsonException.class)
