X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=appc-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fappc%2Futil%2FJsonUtil.java;fp=appc-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fappc%2Futil%2FJsonUtil.java;h=c1906362ee558cbc9a7fe80d016390d6280606df;hb=781b1a6df324419c846c84ea983c18fc8362bfd3;hp=0000000000000000000000000000000000000000;hpb=161df8a94bb3b0c34ed16fd4fdba078bd1eeef9a;p=appc.git diff --git a/appc-common/src/main/java/org/onap/appc/util/JsonUtil.java b/appc-common/src/main/java/org/onap/appc/util/JsonUtil.java new file mode 100644 index 000000000..c1906362e --- /dev/null +++ b/appc-common/src/main/java/org/onap/appc/util/JsonUtil.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.onap.appc.util; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; +import java.util.Map; + + +public class JsonUtil { + /** + * @param valueAsString a valid json Map represented as String + * @return a flat map that each entry key derived from hierarchy path in the json object and flatted to a dotted separated string. + * e.g. "{\"A\":\"A-value\",\"B\":{\"C\":\"B.C-value\",\"D\":\"B.D-value\"}}"; will be represented as {A=A-value, B.C=B.C-value, B.D=B.D-value} + * when it required that the input will not be flatted the json string should be formatted as below example: + * e.g. "{\"A\":\"A-value\",\"B\":\"{\\\"C\\\":\\\"C-value\\\",\\\"D\\\":\\\"D-value\\\"}\"}" will be represented as {A=A-value, B={"C":"C-value","D":"D-value"}} + * @throws IOException when the object is not valid json Map + */ + public static Map convertJsonStringToFlatMap(String valueAsString) throws IOException { + ObjectMapper objectMapper = new ObjectMapper(); + Map readValueMap = objectMapper.readValue(valueAsString,Map.class); + return org.onap.appc.util.ObjectMapper.map(readValueMap); + } +}