fixed restapicall JsonParser to handle : 55/72555/1
authorshashikanth.vh <shashikanth.vh@huawei.com>
Tue, 13 Nov 2018 15:50:31 +0000 (21:20 +0530)
committershashikanth.vh <shashikanth.vh@huawei.com>
Tue, 13 Nov 2018 15:50:37 +0000 (21:20 +0530)
Fixed Restapicall JsonParser to process ":" if it
exist in the response body, this change is required
for casablanca too.

Change-Id: I83b0769eb13eb8d286cc70adc0e85823d6517dcd
Issue-ID: SDNC-519
Signed-off-by: shashikanth.vh <shashikanth.vh@huawei.com>
restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/JsonParser.java

index 4a1dfef..189ddde 100644 (file)
@@ -55,12 +55,17 @@ public final class JsonParser {
             Iterator<String> ii = json.keys();
             while (ii.hasNext()) {
                 String key1 = ii.next();
-                wm.put(key1, json.get(key1));
+                String[] subKey = key1.split(":");
+                if (subKey.length == 2) {
+                    wm.put(subKey[1], json.get(key1));
+                } else {
+                    wm.put(key1, json.get(key1));
+                }
             }
 
             Map<String, String> mm = new HashMap<>();
 
-            while (!wm.isEmpty())
+            while (!wm.isEmpty()) {
                 for (String key : new ArrayList<>(wm.keySet())) {
                     Object o = wm.get(key);
                     wm.remove(key);
@@ -74,7 +79,12 @@ public final class JsonParser {
                         Iterator<String> i = jo.keys();
                         while (i.hasNext()) {
                             String key1 = i.next();
-                            wm.put(key + "." + key1, jo.get(key1));
+                            String[] subKey = key1.split(":");
+                            if (subKey.length == 2) {
+                                wm.put(key + "." + subKey[1], jo.get(key1));
+                            } else {
+                                wm.put(key + "." + key1, jo.get(key1));
+                            }
                         }
                     } else if (o instanceof JSONArray) {
                         JSONArray ja = (JSONArray) o;
@@ -82,10 +92,12 @@ public final class JsonParser {
 
                         log.info("Added property: {}_length: {}", key, String.valueOf(ja.length()));
 
-                        for (int i = 0; i < ja.length(); i++)
+                        for (int i = 0; i < ja.length(); i++) {
                             wm.put(key + '[' + i + ']', ja.get(i));
+                        }
                     }
                 }
+            }
             return mm;
         } catch (JSONException e) {
             throw new SvcLogicException("Unable to convert JSON to properties" + e.getLocalizedMessage(), e);