博客
关于我
Java中递归遍历Map数据,并替换值为null的数据
阅读量:785 次
发布时间:2019-03-25

本文共 2008 字,大约阅读时间需要 6 分钟。

项目需求分析与解决方案

当前需求针对一个JSON数据格式的处理,要求对内部结构中出现"null"值进行替换,替换为空间实137020。数据结构为:

{  "TYPE": "FLIGHTLOAD",  "DATA": {    "FLIGHTID": {      "OUTERFLIGHTID": "6A9DF3F551060192E0530B061C20F1C1",      "CARRIER": "MF",      "FLIGHT": "null",      "ORIGIN": "PEK",      "DESTINATION": "XMN",      "SCHEDULEDEPARTURETIME": "20190312160500"    },    "PAYLOAD": [      {        "DEPARTUREAIRPORT": "PEK",        "DESTINATIONAIRPORT": "XMN",        "TRANSITCHILD": "null",        "TRANSITINFANT": "null",        "BAGGAGE": "959",        "BAGGAGECOUNT": "959",        "POST": "0",        "CARGO": "1859",        "TRANSITPOST": "null",        "TRANSITCARGO": "null"      }    ]  }

工具与解决方案

为了实现上述需求,我们开发了一套递归处理方法,该方法能够将JSON数据中的"null"值替换为空。具体实现如下:

public static void mapNullToEmpty(Map
jsonResult) { for (Map.Entry
entry : jsonResult.entrySet()) { String key = entry.getKey(); Object obj = entry.getValue(); if (obj instanceof String) { if ("null".equals(obj)) { jsonResult.put(key, ""); } } else if (obj instanceof List) { List
> dataList = (List
>) obj; for (Map
data : dataList) { mapNullToEmpty(data); } } else if (obj instanceof Map) { mapNullToEmpty((Map
) obj); } }}

实施效果

经过处理后的JSON数据结构如下:

{  "TYPE": "FLIGHTLOAD",  "DATA": {    "FLIGHTID": {      "OUTERFLIGHTID": "6A9DF3F551060192E0530B061C20F1C1",      "CARRIER": "MF",      "FLIGHT": "",      "ORIGIN": "PEK",      "DESTINATION": "XMN",      "SCHEDULEDEPARTURETIME": "20190312160500"    },    "PAYLOAD": [      {        "DEPARTUREAIRPORT": "PEK",        "DESTINATIONAIRPORT": "XMN",        "TRANSITCHILD": "",        "TRANSITINFANT": "",        "BAGGAGE": "959",        "BAGGAGECOUNT": "959",        "POST": "0",        "CARGO": "1859",        "TRANSITPOST": "",        "TRANSITCARGO": ""      }    ]  }}

项目总结

该方案通过递归处理JSON数据,实现了将"null"值替换为空的需求。在实际应用中,需要注意以下几点:

  • 确保处理方法能够覆盖所有嵌套的JSON结构
  • 注意保持原始数据的其他不变性
  • 要严格按照项目需求对"null"值进行替换
  • 在处理后期性能有所增加
  • 这种方法能够灵活适配不同层级的JSON数据,同时确保代码简洁且易于维护。

    转载地址:http://xapuk.baihongyu.com/

    你可能感兴趣的文章
    PHP获取IP的方法对比
    查看>>
    php获取json里面内容
    查看>>
    R2的版本由来
    查看>>
    PHP获取图片宽度高度、大小尺寸、图片类型、用于布局的img属性
    查看>>
    PHP获取当前时间、时间戳的各种格式写法汇总
    查看>>
    PHP获取当前页面的完整URL
    查看>>
    php获取文件夹中文件的两种方法
    查看>>
    PHP获取日期的一些方法总结
    查看>>
    R2学习记录
    查看>>
    php解析ipa包,获取logo
    查看>>
    php设计模式 萨莱 pdf,PHP设计模式 建造者模式
    查看>>
    php设计模式之装饰器模式
    查看>>
    R&Python Data Science系列:数据处理(5)--字符串函数基于R(一)
    查看>>
    PHP设计模式:观察者模式
    查看>>
    php详细学习1
    查看>>
    php语言优劣
    查看>>
    PHP语言最优雅的支付SDK扩展包
    查看>>
    PHP请求https域名发生segment fault段错误
    查看>>
    PHP读写XML文件
    查看>>
    PHP读写XML文件
    查看>>