本文共 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(MapjsonResult) { 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
经过处理后的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数据,同时确保代码简洁且易于维护。
转载地址:http://xapuk.baihongyu.com/