1. 程式人生 > 其它 >以json格式將json資料列印在控制檯,以json格式將json資料寫入檔案

以json格式將json資料列印在控制檯,以json格式將json資料寫入檔案

package com.sensor.sellCabinet.util;

import java.io.File;
import java.io.FileOutputStream;

public class JsonPrint {

    private static String getLevelStr(int level) {
        StringBuffer levelStr = new StringBuffer();
        for (int levelI = 0; levelI < level; levelI++) {
            levelStr.append(
"\t"); } return levelStr.toString(); } public static void print(String filePath,String s){ int level = 0; //存放格式化的json字串 StringBuffer jsonForMatStr = new StringBuffer(); for(int index=0;index<s.length();index++)//將字串中的字元逐個按行輸出 {
//獲取s中的每個字元 char c = s.charAt(index); // System.out.println(s.charAt(index)); //level大於0並且jsonForMatStr中的最後一個字元為\n,jsonForMatStr加入\t if (level > 0 && '\n' == jsonForMatStr.charAt(jsonForMatStr.length() - 1)) { jsonForMatStr.append(getLevelStr(level));
// System.out.println("123"+jsonForMatStr); } //遇到"{"和"["要增加空格和換行,遇到"}"和"]"要減少空格,以對應,遇到","要換行 switch (c) { case '{': case '[': jsonForMatStr.append(c + "\n"); level++; break; case ',': jsonForMatStr.append(c + "\n"); break; case '}': case ']': jsonForMatStr.append("\n"); level--; jsonForMatStr.append(getLevelStr(level)); jsonForMatStr.append(c); break; default: jsonForMatStr.append(c); break; } } write(filePath,jsonForMatStr); } /** * 寫入檔案 */ private static void write(String filePath,StringBuffer val) { try { File file = new File(filePath); if(!file.exists()){ file.createNewFile(); } FileOutputStream stream = new FileOutputStream(file, true); stream.write((val+(System.getProperty("line.separator"))).getBytes()); stream.flush(); stream.close(); } catch (Exception e) { // TODO: handle exception } } }