diff options
author | Patrick Brady <patrick.brady@att.com> | 2019-04-22 13:12:14 -0700 |
---|---|---|
committer | Patrick Brady <patrick.brady@att.com> | 2019-04-22 13:24:35 -0700 |
commit | 38a4d515a8414e83a3724bccbb5ab83cd50d7df9 (patch) | |
tree | fa3cd897384384483dd0256e7464c551ac135943 /appc-config | |
parent | 2df69f9fc6a46476c8600c31ef1905e9ed8035fb (diff) |
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 <patrick.brady@att.com>
Issue-ID: APPC-1576
Diffstat (limited to 'appc-config')
-rw-r--r-- | appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java | 13 |
1 files 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) { |