1. 程式人生 > >java處理List的內容將其轉換成標準json格式

java處理List的內容將其轉換成標準json格式

我們書寫網頁前臺頁面需要資料的時候,這些資料通常都是存放在資料庫中的,因此我們無法直接將其顯示在前臺頁面中,所以需要對其進行處理操作,一般情況下使用json格式的資料可以在前臺方便的使用,因為可以藉助js來操作json格式的資料,實現前後臺的互動作用,下邊我們舉個例子:

List<String> nodes = new ArrayList<String>();
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<String> nodes = new ArrayList<String>();
        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<JSONObject> getlist = getJsonobject(nodes, "-1");
        System.out.println(JSONObject.toJSONString(getlist));
    }

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

        }
        return jsonObjects;
    }
}
上邊的程式碼主要使用了遞迴的方式來對list集合中的資料進行遍歷和獲取。

這時候執行程式我們可以在控制檯上看出結果一般的我們不易發現此格式是否正確,一般情況下我們可以到該網站下測試我們控制檯內容檢驗生成的json格式是否正確,json線上解析
在實際開發中我們可以將其寫到一個工具類中,這樣便於使用,隨用隨調。這樣就可以方便的借些內容了。

相關推薦

java處理List內容轉換標準json格式

我們書寫網頁前臺頁面需要資料的時候,這些資料通常都是存放在資料庫中的,因此我們無法直接將其顯示在前臺頁面中,所以需要對其進行處理操作,一般情況下使用json格式的資料可以在前臺方便的使用,因為可以藉助js來操作json格式的資料,實現前後臺的互動作用,下邊我們舉

python讀取sql裡面的指定資料列,並轉換列表使用

程式碼如下: import pyodbc import pandas as pd import numpy as np conn = pyodbc.connect(r'DRIVER={SQL Server Native Client 10.0};SERVER=.;DATABASE=資料庫名字

Python輸出\u編碼轉換中文

爬取了下小豬短租的網站出租房資訊但是輸出的時候是這種: 百度了下。python2.7在window上的編碼確實是個坑 解決如下 如果是個字典的話要先將其轉成字串 匯入json庫 然後 這麼輸出(json.dumps(data).decode("uni

java程式設計之怎樣Long轉換Date的日期格式

原文出自:https://zhidao.baidu.com/question/1640128368413010260.html   可以使用java中的日期工具java.text.SimpleDateFormat來格式化,一下為示例程式碼: 1.建立java.text.Simp

八進位制 輸入一個整數,轉換八進位制數輸出

輸入一個整數,將其轉換成八進位制數輸出。   輸入:12    輸出:14 輸入:9    輸出:11 #include <iostream> using namespace std; i

如何jpg轉換pdf圖片格式

向客戶傳送樣圖時會將圖片轉換成pdf格式,一方面方便傳送,另一方面也保證了檔案的安全,想法雖好,但大家肯定要問了數百張的圖片如何合併轉換成PDF文件呢?別急,下面小編就交給大家方法。 1. 這裡小編已

初級--反射(通過反射物件包裝類似JSON格式)

一.什麼是反射。 Java反射就是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意方法和屬性;並且能改變它的屬性。 二.實現 我們就建立一個User類 public class User{ private

linux下如何把時間轉秒數,或把秒數轉換標準時間格式

$ date Tue Feb 3 11:29:00 CST 2009 --把時間轉成秒數 $ date +%s 1233631748 --把秒數轉換成標準時間格式(方法1) $ date -d '1970-1-1 0:0:0 GMT + 1233631748 seconds

完成 toChineseNum, 可以數字轉換中文大寫的表示,處理到萬級別,例如 toChineseNum(12345),返回 一萬二千三百四十五

turn nts math while log 處理 [0 floor rip const toChineseNum = (num) => { const unit = [‘‘, ‘十‘, ‘百‘, ‘千‘] const counts = [‘零

前端和java後臺HTML轉換pdf

前端和java後臺將HTML轉換成pdf java後臺方式: private final static String DEST = "C:\\80afa41a3bfc474cbf1ac8b5bc1d.pdf"; //生成pdf的路徑 private final

java如何字串轉換日期格式

先用parse轉成date型,再用format轉成string。 public static void main(String[] args) throws Exception{ Date date = new SimpleDateFormat(“yyyy-MM

java字串轉換集合

程式碼展示  @Test public void test23(){ Set<String> set = new HashSet<>(); set.add("aaaa"); set.a

劍指offer之字串轉換整數(Java實現)

將字串轉換成整數 NowCoder 題目描述: 將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。 輸入描述: 輸入一個

java位元組轉換十六進位制輸出

public class HexUtils { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(bytesToHexSt

java漢字轉換漢語拼音(pinyin4j.jar的使用及原理)

一、思路介紹 見漢字的unicode碼和漢語拼音對應,這也是pinyin4j的思路 二、pinyin4j介紹 pinyin4j使用了一個.txt的文字檔案(uicode_to_hanyu_pinyin.txt)用來儲存漢字unicode編碼與拼音的對應關係,通過讀取該配置

java使用pd4mlhtml轉換pdf

import java.awt.Insets; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.F

Pythonlist中的unicode轉換中文顯示

有這樣一個列表: list = [{'channel_id': -3, 'name': u'\u7ea2\u5fc3\u5146\u8d6b'}, {u'seq_id': 0, u'name_en':

JavaXML轉換Json格式資料

/** * 將XML解析為JSON,讓Json處理服務支援XML報文 * 依賴包: * 1. jdom-2.0.2.jar : xml解析工具包; * 2. fastjson-1.1.36.jar : 阿里巴巴研發的高效能json工具包 */ p

DataTable轉換List泛型集合助手類

將DataTable轉換成List<T>泛型集合助手類,這個類我放在了Entity實體類層中: [csharp] using System; using System.Collections.Generic; using System.Linq; us