gpt4 book ai didi

java - jackson : Serialize a JSON object to multiple objects

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:39 28 4
gpt4 key购买 nike

给我一​​个字符串,它表示 Map<String, String> 类型的 json 对象。一个 json 对象中的字符数有限制。如果 JSON 对象中的字符数超过指定的限制,我必须将 json 对象转换为多个 json 对象的数组。使用 Jackson Mapper 执行此操作的最简单且干净的方法是什么?

例如:如果这是给出的 json 对象是:

{
"cfname":"Kob",
"NAME_6":"Philharmonic Youth Orchestra",
"NAME_5":"Pathways to Discovery: Engineering, Medicine & CSI",
"NAME_4":"Fashion Design Camp",
"IMAGE_URL_1":"http://res.cloudinary.com/pxxxxxx-jxxxxxx/image/upload/c_fill,h_230,w_260/v0000000000/vccrgwdekjkpdvpsrv4f.jpg",
"IMAGE_URL_2":"http://res.cloudinary.com/pxxxxxx-jxxxxxx/image/upload/c_fill,h_230,w_260/v0000000000/wlom2u5525nyjjbttazw.jpg"
}

如果一个 json 对象的字符数限制是 200。那么输出将是:

[
{
"cfname":"Kob",
"NAME_6":"Philharmonic Youth Orchestra",
"NAME_5":"Pathways to Discovery: Engineering, Medicine & CSI",
"NAME_4":"Fashion Design Camp"
},
{
"IMAGE_URL_1":"http://res.cloudinary.com/pxxxxxx-jxxxxxx/image/upload/c_fill,h_230,w_260/v0000000000/vccrgwdekjkpdvpsrv4f.jpg"
},
{
"IMAGE_URL_2":"http://res.cloudinary.com/pxxxxxx-jxxxxxx/image/upload/c_fill,h_230,w_260/v0000000000/wlom2u5525nyjjbttazw.jpg"
}
]
  1. 我们可以假设给定 json 对象中任何键值对的长度都小于给定的字符数限制。
  2. 在计算字符数时,我们应该忽略空格和换行符。

用例: 我必须将这些 json 对象作为标题添加到电子邮件中。由于 smtp 对每个 header 值的字符限制为 1000。我必须将其分解为多个 json 对象,每个 json 对象将是一个 header 值。

最佳答案

最后我只是使用了简单的方法。这是我编写的代码片段,可供其他人快速使用:

int                 charCount = 11 + rcpt.length();
Map<String, String> map = Maps.newHashMap();

for (Entry<String, String> e : mergeTags.entrySet()) {
int cnt = charCount(e);

if (charCount + cnt >= 987) {
message.addHeader(TEMPLATE_MERGEVARS_HEADER, BINDER.writeValue(map));
map = Maps.newHashMap();
charCount = 11 + rcpt.length();
}

map.put(e.getKey(), e.getValue());
charCount += cnt;
}

if (!map.isEmpty()) {
message.addHeader(TEMPLATE_MERGEVARS_HEADER, BINDER.writeValue(map));
}

private static int charCount(Entry<String, String> e) {
return e.getKey().length() + e.getValue().length() + 6;
}

消息将包含所有 header 值作为多映射。

关于java - jackson : Serialize a JSON object to multiple objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539558/

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