On Fri, Jan 18, 2019 at 4:13 PM Sam Hague <[email protected]> wrote: > Any idea if there is a portable java method that can take json as input > and output java objects? Or some example code that maybe isn't as generic, > but with some case-specific coding could do the same? > > The use case is for writing unit tests. Every new listener I add tests for > I always create helper methods to fill out the java objects, write to > mdsal, do some verifications, write some more and so on. It would be much > more readable to simply input a json into this new helper method and out > pop a java object that can be written to mdsal. > > I imagine the restconf project has something similar since it parses > incoming json. Or maybe it is using some libraries to do the same? >
restconf doesn't use binding classes - it converts json/xml to NormalizedNode - this is done in https://github.com/opendaylight/netconf/blob/master/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/JsonNormalizedNodeBodyReader.java : final NormalizedNodeResult resultHolder = new NormalizedNodeResult(); final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder); ... final JsonParserStream jsonParser = JsonParserStream.create(writer, JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(path.getSchemaContext()), parentSchema); final JsonReader reader = new JsonReader(new InputStreamReader(nonEmptyInputStreamOptional.get(), StandardCharsets.UTF_8)); jsonParser.parse(reader); NormalizedNode<?, ?> result = resultHolder.getResult(); Then you can convert the NormalizedNode to a binding object via BindingToNormalizedNodeCodec: BindingToNormalizedNodeCodec codec = ... DataObject javaObject = codec.fromNormalizedNode(path, result).getValue(); > > Thanks, Sam > _______________________________________________ > Discuss mailing list > [email protected] > https://lists.opendaylight.org/mailman/listinfo/discuss >
_______________________________________________ Discuss mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/discuss
