博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json字符串还原map
阅读量:5751 次
发布时间:2019-06-18

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

今天有个需求,由于调用第三方接口一直调不通,但是又需要先把接口写好供前端调用,于是想到以前写的一个json字符串还原的类。这里做个笔记。

package com.hz.token;import com.google.gson.Gson;import java.util.List;import java.util.Map;/** * 2017/6/26. */public class JsonToStringUtil {    private static StringBuffer sb = new StringBuffer("Map jsonMap = new HashMap();\n");    private JsonToStringUtil() {    }    public static void main(String[] args) {        String s = parseJsonStr(CONTENT);        System.out.println(s);    }    public static String parseJsonStr(String jsonStr) {        Gson gson = new Gson();        Map
map = gson.fromJson(jsonStr, Map.class); for (Map.Entry
entry : map.entrySet()) { Object value = entry.getValue(); if (value instanceof String) { appendStringMap("jsonMap", entry.getKey(), (String) value); } if (value instanceof Number) { appendObjectMap("jsonMap", entry.getKey(), value); } if (value instanceof Map) { appendMapMap(entry.getKey(), (Map) value); appendObjectMap("jsonMap", entry.getKey(), entry.getKey()); } if (value instanceof List) { appendListMap(entry.getKey(), (List) value); appendObjectMap("jsonMap", entry.getKey(), entry.getKey()); } } return sb.toString(); } private static void appendStringMap(String mapKey, String key, String value) { sb.append(mapKey).append(".put(\"").append(key).append("\",\"").append(value).append("\");\n"); } private static void appendObjectMap(String mapKey, String key, Object value) { sb.append(mapKey).append(".put(\"").append(key).append("\",").append(value).append(");\n"); } private static void appendMapMap(String subMapKey, Map
subMapValue) { sb.append("Map ").append(subMapKey).append("= new HashMap();\n"); for (Map.Entry
entry : subMapValue.entrySet()) { Object value = entry.getValue(); if (value instanceof String) { appendStringMap(subMapKey, entry.getKey(), (String) value); } if (value instanceof Number) { appendObjectMap(subMapKey, entry.getKey(), value); } if (value instanceof Map) { appendMapMap(entry.getKey(), (Map) value); appendObjectMap(subMapKey, entry.getKey(), entry.getKey()); } if (value instanceof List) { appendListMap(entry.getKey(), (List) value); appendObjectMap(subMapKey, entry.getKey(), entry.getKey()); } } } private static void appendStringList(String listKey, Object value) { sb.append(listKey).append(".add(\"").append(value).append("\");\n"); } private static void appendObjectList(String listKey, Object value) { sb.append(listKey).append(".add(").append(value).append(");\n"); } private static void appendListMap(String subListKey, List subListValue) { sb.append("List ").append(subListKey).append("= new ArrayList();\n"); int i = 1; for (Object value : subListValue) { if (value instanceof String) { appendStringList(subListKey, value); } if (value instanceof Number) { appendObjectList(subListKey, value); } if (value instanceof Map) { String mapName = subListKey + "SubMap" + i; appendMapMap(mapName, (Map) value); appendObjectList(subListKey, mapName); } if (value instanceof List) { String listName = subListKey + "SubList" + i; appendListMap(listName, (List) value); appendObjectList(subListKey, listName); } i++; } } private static String CONTENT = "{\"authCode\":\"drivingLicense\",\"childCommitType\":\"drivingLicenseInfos\",\"custNo\":\"955628\",\"loanCode\":\"carat\",\"mainAuthlog\":\"2016-07-01\",\"mainCardno\":\"沪A12345\",\"mainMotorno\":\"HJ145632\",\"mainRegistdate\":\"2016-07-01\",\"ssAccountId\":\"\"}\n";}
image.png

关注我的公众号,都是满满的干货!

孙坚.gif

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

你可能感兴趣的文章
Java集合(二) Map 架构
查看>>
linux 死机分析
查看>>
BOM
查看>>
LeetCode:Nim Game - 尼姆博弈
查看>>
Alpha冲刺&总结报告(12/12)(麻瓜制造者)
查看>>
iOS:CAEmitterLayer粒子效果
查看>>
iOS: Block的循环引用
查看>>
mysql实战02 | 日志系统:一条SQL更新语句是如何执行的?
查看>>
Xamarin.Android 引导页
查看>>
LINUX系统、磁盘与进程的相关命令
查看>>
测试九 赛后感受
查看>>
ECC椭圆曲线详解(有具体实例)
查看>>
关于WechatApp学习总结
查看>>
Linux常见命令(二)
查看>>
纯数学教程 Page 325 例LXVIII (9)
查看>>
document.write()的用法和清空的原因
查看>>
【EXLUCAS模板】【拓展卢卡斯详解】【组合数高级篇】LuoGu P4720
查看>>
PyCharm切换解释器
查看>>
一些基本的灰度变换函数
查看>>
java中的@Override是否需要
查看>>