// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.data; /** * Generic API for classes that contain data representable as JSON. */ public interface JsonProducer { /** * Append the JSON representation of this object's data to a StringBuilder. * Note that when passing compact=false the generated string will * be human-readable and containing embedded newlines; also the * exact indentation etc may change, so use compact=true for a * canonical format. * @param target the StringBuilder to append to. * @return the target passed in is also returned (to allow chaining). */ StringBuilder writeJson(StringBuilder target); /** * Convenience method equivalent to: * makeJson(new StringBuilder()).toString() * @return String containing JSON representation of this object's data. */ String toJson(); }