栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从JSON字符串获取指向值的所有JSON路径的列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从JSON字符串获取指向值的所有JSON路径的列表?

我想出了一个解决方案,以防万一其他人在寻找相同的东西:

public class JsonParser {    private List<String> pathList;    private String json;    public JsonParser(String json) {        this.json = json;        this.pathList = new ArrayList<String>();        setJsonPaths(json);    }    public List<String> getPathList() {        return this.pathList;    }    private void setJsonPaths(String json) {        this.pathList = new ArrayList<String>();        JSonObject object = new JSonObject(json);        String jsonPath = "$";        if(json != JSONObject.NULL) { readObject(object, jsonPath);        }       }    private void readObject(JSonObject object, String jsonPath) {        Iterator<String> keysItr = object.keys();        String parentPath = jsonPath;        while(keysItr.hasNext()) { String key = keysItr.next(); Object value = object.get(key); jsonPath = parentPath + "." + key; if(value instanceof JSONArray) {      readArray((JSONArray) value, jsonPath); } else if(value instanceof JSONObject) {     readObject((JSONObject) value, jsonPath); } else { // is a value     this.pathList.add(jsonPath);     }       }      }    private void readArray(JSonArray array, String jsonPath) {   String parentPath = jsonPath;        for(int i = 0; i < array.length(); i++) { Object value = array.get(i);         jsonPath = parentPath + "[" + i + "]"; if(value instanceof JSONArray) {     readArray((JSONArray) value, jsonPath); } else if(value instanceof JSONObject) {          readObject((JSONObject) value, jsonPath); } else { // is a value     this.pathList.add(jsonPath); }    }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号