ArrayList转Json的时候,如果list中有null值,转完会丢失有null值的key,如何解决?

16 篇文章 0 订阅
3 篇文章 0 订阅

使用下面方法:

JSON.parseArray(JSONObject.toJSONString(arrList, SerializerFeature.WriteMapNullValue));

结果:

      {
        "DOC_ID": null,
        "CODE": "59553DEB1BC24D15BB0E97B27D931CA8",
        "STAT": "1",
        "DOC_NAME": null,
        "NODE_NAME": "编辑",
        "ORG_NAME": null,
        "SUGGESTION": null,
        "USER_NAME": "毛小磕",
        "LAST_EDIT_TIME": 1597805156000,
        "CREATE_TIME": 1597805156000
      }

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
List为Map并合并value的步骤如下: 1. 首先,你需要创建一个List,其包含你要转换为Map的元素。 2. 使用Java 8的Stream流,通过调用`collect(Collectors.toMap())`方法将List转换为Map。在`toMap()`方法,你需要提供一个lambda表达式来指定key和value的生成方式。 3. 在lambda表达式,你可以将`key`设置为你希望作为Map的key的字段,将`value`设置为你希望作为Map的value的字段。 4. 在`toMap()`方法的第三个参数,你可以提供一个lambda表达式来处理当key相同时的情况。这个lambda表达式接收两个参数,分别是新value和旧value。你可以在这个lambda表达式将新value添加到旧value,然后返回合并后的。 5. 最后,你可以使用`JSONUtil.toJsonStr()`方法将得到的Map转换JSON字符串。 下面是一个示例代码,演示了如何将List转换为Map并合并value: ```java import cn.hutool.json.JSONUtil; import com.google.common.collect.Lists; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class AppDemo { public static void main(String[] args) { List<Integer> list = Lists.newArrayList(1, 7, 2, 5, 3, 4, 5, 1, 3, 6, 7); Map<Integer, List<Integer>> map = list.stream() .collect(Collectors.toMap( key -> key, value -> Lists.newArrayList(value), (newValueList, oldValueList) -> { oldValueList.addAll(newValueList); return oldValueList; } )); System.out.println(JSONUtil.toJsonStr(map)); } } ``` 这段代码将List `[1, 7, 2, 5, 3, 4, 5, 1, 3, 6, 7]` 转换为Map,并将相同的key的value合并为List。最终输出的结果为`{"1":[1,1],"2":,"3":[3,3],"4":,"5":[5,5],"6":,"7":[7,7]}`。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java List《map》把里面map某个key相同记录的其他key 的 value 合并 ](https://download.csdn.net/download/qq_26975307/12798166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ListMap时把重复的value合并成List](https://blog.csdn.net/xhaimail/article/details/120527032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希文先森

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值