JAva処理Listの内容を標準json形式に変換


私たちがウェブページのフロントページを書くのにデータが必要な場合、これらのデータは通常データベースに格納されているので、フロントページに直接表示することはできないので、処理操作が必要です.一般的にjson形式のデータはフロントで便利に使用できます.jsでjson形式のデータを操作することができるので、フロント・バックグラウンドのインタラクションを実現するには、次の例を挙げます.
List nodes = new ArrayList();
nodes.add("{id:1,pid:-1,name:'XX    '}");
nodes.add("{id:2,pid:1,name:'      '}");
nodes.add("{id:3,pid:1,name:'     '}");
nodes.add("{id:4,pid:1,name:'      '}");
nodes.add("{id:5,pid:1,name:'    '}");

nodes.add("{id:6,pid:2,name:'dd  '}");
nodes.add("{id:7,pid:2,name:'zz     '}");
nodes.add("{id:8,pid:2,name:'zz   '}");
nodes.add("{id:9,pid:2,name:'yy   '}");


nodes.add("{id:10,pid:3,name:'ddee  '}");
nodes.add("{id:11,pid:3,name:'aagg  '}");

nodes.add("{id:12,pid:4,name:'      '}");
nodes.add("{id:13,pid:4,name:'      '}");
nodes.add("{id:14,pid:4,name:'      '}");
nodes.add("{id:15,pid:4,name:'      '}");

nodes.add("{id:16,pid:5,name:'  ETC'}");
nodes.add("{id:17,pid:5,name:'  ETC'}");
nodes.add("{id:18,pid:5,name:'  ETC'}");

 nodes      ,      ,    JSON    :

[id:1,name:"XX    ",children:[
            {id:2,name:"      ",childred:[
                {id:6,name:"dd"},
                {id:7,name:"ddff   "},
                {id:8,name:"adef   "},
                {id:9,name:"eg   "},
            ]}]

この場合、私たちは手がつけられないかもしれませんが、fastjson.jarパッケージを通じていくつかのクラスを提供して、問題を解決することができます.fastjson-1.x.x.jarバージョンのjarパッケージをインポートする必要があります(オンラインでダウンロードできます).今回は主にJSONObjectオブジェクトを使用しています.インスタンスコードは以下の通りです.


import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class TransJson {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List nodes = new ArrayList();
        nodes.add("{id:1,pid:-1,name:'xxx  '}");
        nodes.add("{id:2,pid:1,name:'      '}");
        nodes.add("{id:3,pid:1,name:'     '}");
        nodes.add("{id:4,pid:1,name:'      '}");
        nodes.add("{id:5,pid:1,name:'    '}");

        nodes.add("{id:6,pid:2,name:'def  '}");
        nodes.add("{id:7,pid:2,name:'defg   '}");
        nodes.add("{id:8,pid:2,name:'asd   '}");
        nodes.add("{id:9,pid:2,name:'asd  '}");

        nodes.add("{id:10,pid:3,name:'ggdd  '}");
        nodes.add("{id:11,pid:3,name:'eedd  '}");

        nodes.add("{id:12,pid:4,name:'      '}");
        nodes.add("{id:13,pid:4,name:'      '}");
        nodes.add("{id:14,pid:4,name:'      '}");
        nodes.add("{id:15,pid:4,name:'      '}");

        nodes.add("{id:16,pid:5,name:'  ETC'}");
        nodes.add("{id:17,pid:5,name:'  ETC'}");
        nodes.add("{id:18,pid:5,name:'  ETC'}");
        JSONObject jsonObject = new JSONObject();
        List getlist = getJsonobject(nodes, "-1");
        System.out.println(JSONObject.toJSONString(getlist));
    }

    private static List getJsonobject(List list, String startidid) {
        List jsonObjects = new ArrayList();
        for (String s : list) {
            JSONObject jsonObject = JSONObject.parseObject(s);
            String pid = jsonObject.getString("pid");
            if (pid.equals(startidid)) {
                String id = jsonObject.getString("id");
                List child = getJsonobject(list, id);
                if (child.size() > 0) {
                    jsonObject.put("child", child);
                }
                jsonObjects.add(jsonObject);
            }

        }
        return jsonObjects;
    }
}
                 list             。

このとき、プログラムを実行すると、コンソールで結果を見ることができます.一般的には、このフォーマットが正しいかどうかは発見しにくいです.一般的には、コンソールの内容をテストして、生成されたjsonフォーマットが正しいかどうかをテストすることができます.jsonはオンラインで解析します.実際の開発では、ツールクラスに書くことができます.これにより、使いやすくなり、調子に合わせて使用できます.これで簡単に内容を借りることができます.