如何在java中分层显示JSON字段

时间:2015-05-22 09:21:25

标签: java json

我有一个JSON对象,想要分层显示字段。

checkedTreeSelectionDialog.setInput(jsonObject);

getchildren()类的JsonContentProvider方法中,我正在解析json对象

private void getChildrenForJson(final Object object) {

    final JSONObject jsonObject = (JSONObject) object;

        for (final Object objct : jsonObject.keySet()) {
            try {
                if (jsonObject.get(objct) instanceof JSONArray) {
                    getArray(jsonObject.get(objct));
                } else {
                    if (jsonObject.get(objct) instanceof JSONObject) {
                        getChildrenForJson(jsonObject.get(objct)); 
                    }
                }

但是,返回的字段不是分层次的。

如何按层次结构获取这些字段?

1 个答案:

答案 0 :(得分:1)

function sortObject(o) {
    var sorted = {},
    key, a = [];

    for (key in o) {
        if (o.hasOwnProperty(key)) {
            a.push(key);
        }
    }

    a.sort();

    for (key = 0; key < a.length; key++) {
        sorted[a[key]] = o[a[key]];
    }
    return sorted;
}

private void getChildrenForJson(final Object object) {
    final JSONObject jsonObject = (JSONObject) object;

            for (final Object objct : jsonObject.keySet()) {
                try {
                    if (jsonObject.get(objct) instanceof JSONArray) {

                      var q = getArray(jsonObject.get(objct));
                      var p = sortObject(q);
                      console.log(p);
                    } else {
                        if (jsonObject.get(objct) instanceof JSONObject) {
                     var q =getChildrenForJson(jsonObject.get(objct));
                     var p = sortObject(q);
                      console.log(p); 
                        }
                    }

这是你期待的,我希望!