diff --git a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/EdgeInputFormatDescription.java b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/EdgeInputFormatDescription.java
index acc240d..9760c09 100644
--- a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/EdgeInputFormatDescription.java
+++ b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/EdgeInputFormatDescription.java
@@ -116,7 +116,7 @@
           Lists.newArrayListWithCapacity(inputFormatsJson.length());
       for (int i = 0; i < inputFormatsJson.length(); i++) {
         descriptions.add(new EdgeInputFormatDescription<I, E>(
-            inputFormatsJson.getString(i)));
+            inputFormatsJson.getJSONArray(i).toString()));
       }
       return descriptions;
     } catch (JSONException e) {
diff --git a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/MappingInputFormatDescription.java b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/MappingInputFormatDescription.java
index 6a3ba91..ded3503 100644
--- a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/MappingInputFormatDescription.java
+++ b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/MappingInputFormatDescription.java
@@ -124,7 +124,7 @@
           Lists.newArrayListWithCapacity(inputFormatsJson.length());
       for (int i = 0; i < inputFormatsJson.length(); i++) {
         descriptions.add(new MappingInputFormatDescription<I, V, E, B>(
-            inputFormatsJson.getString(i)));
+            inputFormatsJson.getJSONArray(i).toString()));
       }
       return descriptions;
     } catch (JSONException e) {
diff --git a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/VertexInputFormatDescription.java b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/VertexInputFormatDescription.java
index e86f9ed..0359e98 100644
--- a/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/VertexInputFormatDescription.java
+++ b/giraph-core/src/main/java/org/apache/giraph/io/formats/multi/VertexInputFormatDescription.java
@@ -120,7 +120,7 @@
           Lists.newArrayListWithCapacity(inputFormatsJson.length());
       for (int i = 0; i < inputFormatsJson.length(); i++) {
         descriptions.add(new VertexInputFormatDescription<I, V, E>(
-            inputFormatsJson.getString(i)));
+            inputFormatsJson.getJSONArray(i).toString()));
       }
       return descriptions;
     } catch (JSONException e) {
diff --git a/pom.xml b/pom.xml
index 91128f4..e2eff4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -340,7 +340,7 @@
     <dep.jaxb-impl.version>2.2.4-1</dep.jaxb-impl.version>
     <dep.jersey.version>1.17</dep.jersey.version>
     <dep.jetty.version>6.1.26</dep.jetty.version>
-    <dep.json.version>20090211</dep.json.version>
+    <dep.json.version>20160810</dep.json.version>
     <dep.junit.version>4.11</dep.junit.version>
     <dep.jython.version>2.5.3</dep.jython.version>
     <dep.kryo.version>3.0.1</dep.kryo.version>
