From 9917c0e622b8dac78e68bc806239da5c5094a219 Mon Sep 17 00:00:00 2001 From: grunci Date: Fri, 24 Jul 2015 16:02:56 +0200 Subject: [PATCH] Possibility to turn off or on forward slash escaping on an already created JSONObject. --- .../org/codehaus/jettison/json/JSONObject.java | 10 ++++++++++ .../codehaus/jettison/json/JSONObjectTest.java | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) 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\"}"); + } }