gpt4 book ai didi

java - Smile 与 JSON 之间的高效转换

转载 作者:行者123 更新时间:2023-12-02 17:35:50 26 4
gpt4 key购买 nike

我了解到 Smile 和 JSON 之间的转换可以在一些来源中高效完成:

  • 这意味着 JSON 和 Smile 之间的转换可以高效完成且不会丢失信息。 ( github, jackson-docs );
  • 这两种格式兼容:您可以通过包装适当的解码器来发送 Smile 并解码为 JSON。 ( stackoverflow )

甚至Wikipedia :...这意味着在 JSON 上运行的工具也可以与 Smile 一起使用,只要存在适当的编码器/解码器供工具使用

不幸的是,除了有关编码器/解码器的信息之外,我没有在任何来源中找到任何有用的信息。

所以一般问题是如何做到这一点

  • 有一些内置的方法可以做到这一点吗?
  • 如果没有,是否有一些自定义且已实现的解决方案?
  • 如果没有,请给我一些关于编写编码器/解码器的提示。

最佳答案

public class JsonSmileMigrationService
{
private static final Logger log = LoggerFactory.getLogger(JsonSmileMigrationService.class);

public static byte[] convertToSmile(byte[] json, JsonFactory jsonFactory, SmileFactory smileFactory)
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();

try // try-with-resources
(
JsonGenerator jg = smileFactory.createGenerator(bos);
JsonParser jp = jsonFactory.createParser(json)
)
{
while (jp.nextToken() != null)
{
jg.copyCurrentEvent(jp);
}
}
catch (Exception e)
{
log.error("Error while converting json to smile", e);
}

return bos.toByteArray();
}

public static byte[] convertToJson(byte[] smile, JsonFactory jsonFactory, SmileFactory smileFactory)
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();

try // try-with-resources
(
JsonParser sp = smileFactory.createParser(smile);
JsonGenerator jg = jsonFactory.createGenerator(bos)
)
{
while (sp.nextToken() != null)
{
jg.copyCurrentEvent(sp);
}
}
catch (Exception e)
{
log.error("Error while converting smile to json", e);
}

return bos.toByteArray();
}
}

关于java - Smile 与 JSON 之间的高效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com