From 38a4d515a8414e83a3724bccbb5ab83cd50d7df9 Mon Sep 17 00:00:00 2001 From: Patrick Brady Date: Mon, 22 Apr 2019 13:12:14 -0700 Subject: [PATCH] Escape quotes in json strings The JSONObject parser strips all text of backslash escape characters, even if it is treaing the object as a string and not a series of json keys. If a string contains a json object within it, the removal of these escape characters causes problems. Adding the JSONObject.quote method on all strings to automatically add escape characters to any strings which contain characters requiring escapes. Change-Id: Ifac68844dd132971ba35803f1b9c03a5372bd500 Signed-off-by: Patrick Brady Issue-ID: APPC-1576 --- .../java/org/onap/sdnc/config/generator/tool/JSONTool.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java index 65071619b..fa1c0fee9 100644 --- a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java @@ -63,8 +63,17 @@ public class JSONTool { wm.remove(key); tryAddBlockKeys(blockKeys, mm, key, o); if (o instanceof Boolean || o instanceof Number || o instanceof String) { - mm.put(key, o.toString()); - log.info("Added property: " + key + ": " + o.toString()); + String oString = o.toString(); + //Add escape characters to the string in case it is a string representation + //of a json object. + oString = JSONObject.quote(oString); + //Remove the surrouding quotes added by the JSONObject.quote() method. + //JSONObject.quote() will always return, at minimum, a string with two quotes, + //even if a null string is passed to it. So this substring method does not + //need any checks. + oString.substring(1, oString.length() - 1); + mm.put(key, oString); + log.info("Added property: " + key + ": " + oString); } else if (o instanceof JSONObject) { fill(wm, key, (JSONObject) o); } else if (o instanceof JSONArray) { -- 2.16.6