diff --git a/src/main/java/org/codehaus/jettison/json/JSONObject.java b/src/main/java/org/codehaus/jettison/json/JSONObject.java
index 53b83bc..2ce54d9 100644
--- a/src/main/java/org/codehaus/jettison/json/JSONObject.java
+++ b/src/main/java/org/codehaus/jettison/json/JSONObject.java
@@ -143,6 +143,8 @@ public boolean isExplicitNull() {
private List ignoredElements;
private boolean writeNullAsString = true;
private boolean escapeForwardSlashAlways = true;
+
+
/**
* It is sometimes more convenient and less ambiguous to have a
* NULL object than to use Java's null value.
@@ -1385,4 +1387,12 @@ public Writer write(Writer writer) throws JSONException {
throw new JSONException(e);
}
}
+
+ public boolean isEscapeForwardSlashAlways() {
+ return escapeForwardSlashAlways;
+ }
+
+ public void setEscapeForwardSlashAlways(boolean escapeForwardSlashAlways) {
+ this.escapeForwardSlashAlways = escapeForwardSlashAlways;
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/codehaus/jettison/json/JSONObjectTest.java b/src/test/java/org/codehaus/jettison/json/JSONObjectTest.java
index eb277fc..6fbd919 100644
--- a/src/test/java/org/codehaus/jettison/json/JSONObjectTest.java
+++ b/src/test/java/org/codehaus/jettison/json/JSONObjectTest.java
@@ -77,4 +77,20 @@ public void testMissingIsNull() throws Exception {
JSONObject obj = new JSONObject("{\"a\":null}");
assertTrue(obj.isNull("b"));
}
+
+ public void testSlashEscapingTurnedOnByDefault() throws Exception {
+ JSONObject obj = new JSONObject();
+ obj.put("key", "http://example.com/foo");
+ assertEquals(obj.toString(), "{\"key\":\"http:\\/\\/example.com\\/foo\"}");
+ }
+
+ public void testForwardSlashEscapingModifiedfBySetter() throws Exception {
+ JSONObject obj = new JSONObject();
+ obj.put("key", "http://example.com/foo");
+ assertEquals(obj.toString(), "{\"key\":\"http:\\/\\/example.com\\/foo\"}");
+ obj.setEscapeForwardSlashAlways(false);
+ assertEquals(obj.toString(), "{\"key\":\"http://example.com/foo\"}");
+ obj.setEscapeForwardSlashAlways(true);
+ assertEquals(obj.toString(), "{\"key\":\"http:\\/\\/example.com\\/foo\"}");
+ }
}