类json格式字符串打印

package main

import (
    "fmt"
)

func main() {
    msg := "{Amount:21111111 DrawalBankHolder:刘成友 DrawalBankNo:6212264100011335366 DrawalSn:5112118111111690 DrawalTime:2018-11-30T00:00:00+08:00 FineAmt:15452 Interest:612977 IsCompensation:TRUE LoanOvdRate:1.111751 LoanRate:18.11 LoanTerm:3 LoanTermUnit:M PlanList:[{FineAmt:200 Interest:100 InterestPenalty:40 IsCompensation:TRUE Principal:400 PrincipalPenalty:160 RepaidFineAmt:200 RepaidInterest:200 RepaidInterestPenalty:58 RepaidPrincipal:500 RepaidPrincipalPenalty:142 BillStatus:CLEAR TermEndDate:2018-11-30T00:00:00+08:00 TermNo:1 TermStartDate:2018-11-30T00:00:00+08:00} {FineAmt:100 Interest:211485 InterestPenalty:0 IsCompensation:FALSE Principal:6666174 PrincipalPenalty:0 RepaidFineAmt:100 RepaidInterest:100 RepaidInterestPenalty:0 RepaidPrincipal:100 RepaidPrincipalPenalty:0 BillStatus:NORMAL TermEndDate:2018-12-30T00:00:00+08:00 TermNo:2 TermStartDate:2018-12-11T00:00:00+08:00} {FineAmt:100 Interest:111492 InterestPenalty:0 IsCompensation:FALSE Principal:6766167 PrincipalPenalty:0 RepaidFineAmt:100 RepaidInterest:100 RepaidInterestPenalty:0 RepaidPrincipal:100 RepaidPrincipalPenalty:0 BillStatus:NORMAL TermEndDate:2019-11-30T00:00:00+08:00 TermNo:3 TermStartDate:2019-11-11T00:00:00+08:00}] Principal:21111111 RepaidInterest:100 RepaidList:[{RepaidInterest:100 RepaidInterestPenalty:20 RepaidPrincipal:400 RepaidPrincipalPenalty:80 RepaidSn:111 RepaidType:OFFLINE RepayConfirmDate:2018-11-30T22:22:22+08:00 TermNo:1}] RepaidPrincipal:100 RepaidTotal:100 RepaidFineAmt:200 BillStatus:OVD}"
    printMsg(msg)
}

func printMsg(msg string) {
    blankNum := 0
    for _, value := range msg {
        cc := fmt.Sprintf("%c", value)
        switch cc {
        case "{":
            fmt.Printf("{")
            fmt.Printf("\n")
            blankNum += 4
            fmt.Printf(getBlank(blankNum))
        case "}":
            fmt.Printf("\n")
            blankNum -= 4
            fmt.Printf(getBlank(blankNum))
            fmt.Printf("}")
        case "[":
            fmt.Printf("[")
            fmt.Printf("\n")
            blankNum += 4
            fmt.Printf(getBlank(blankNum))
        case "]":
            fmt.Printf("\n")
            blankNum -= 4
            fmt.Printf(getBlank(blankNum))
            fmt.Printf("]")
        case " ":
            fmt.Printf("\n")
            fmt.Printf(getBlank(blankNum))
        default:
            fmt.Printf(cc)
        }

    }

}

func getBlank(num int) string {
    blanks := ""
    for i := 0; i < num; i++ {
        blanks += " "
    }
    return blanks
}

猜你喜欢

转载自www.cnblogs.com/zengyjun/p/10114692.html