本篇文章为大家展示了怎么能够快速解析json字符串中元素的帮助类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
在开发过程中,我大量接触到了解析json字符串的需求,拿去对应需求的元素。在此过程中,我编写了能够快速拿取json字符串的帮助类。
//用gradle管理 implementation "com.fasterxml.jackson.core:jackson-databind"
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import java.io.IOException; /** * @author edison_kwok */ public class JsonUtils { private static ObjectMapper objectMapper = new ObjectMapper(); /** * 根据路径解析json字符串,获取String类型数据 * * @param content * @param path * @return * @throws IOException */ public static String parse(String content, Object[] path) throws IOException { if (StringUtils.isBlank(content)) { return null; } try { JsonNode node = objectMapper.readTree(content); int len = path.length; int index = 0; while (index < len) { if (path[index] instanceof Integer) { int i = (Integer) path[index]; node = node.get(i); } else if (path[index] instanceof String) { String s = (String) path[index]; node = node.get(s); } index++; } String result = node.toString(); return result.substring(1, result.length() - 1); } catch (NullPointerException e) { return null; } } /** * 根据路径解析json字符串,获取Integer类型字符串 * * @param content * @param path * @return * @throws IOException */ public static Integer parseInteger(String content, Object[] path) throws IOException { if (StringUtils.isBlank(content)) { return null; } try { JsonNode node = objectMapper.readTree(content); int len = path.length; int index = 0; while (index < len) { if (path[index] instanceof Integer) { int i = (Integer) path[index]; node = node.get(i); } else if (path[index] instanceof String) { String s = (String) path[index]; node = node.get(s); } index++; } String result = node.toString(); return Integer.parseInt(result); } catch (NullPointerException e) { return null; } } /** * 根据路径解析json字符串,获取当中的json字符串 * * @param content * @param path * @return * @throws IOException */ public static String parseJson(String content, Object[] path) throws IOException { if (StringUtils.isBlank(content)) { return null; } try { JsonNode node = objectMapper.readTree(content); int len = path.length; int index = 0; while (index < len) { if (path[index] instanceof Integer) { int i = (Integer) path[index]; node = node.get(i); } else if (path[index] instanceof String) { String s = (String) path[index]; node = node.get(s); } index++; } return node.toString(); } catch (NullPointerException e) { return null; } } }
在项目开发中,如果大量使用到了json解析需求,可以使用本帮助类。
上述内容就是怎么能够快速解析json字符串中元素的帮助类,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。