diff --git a/.gitignore b/.gitignore index 8eb51c2..923b24f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ # Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 .glide/ jsonfiddle +jsonfiddle.exe diff --git a/cmd_x2j.go b/cmd_x2j.go index e0841e6..2498e3e 100644 --- a/cmd_x2j.go +++ b/cmd_x2j.go @@ -8,8 +8,11 @@ package main import ( "fmt" + "io" "os" + xj "github.com/basgys/goxml2json" + "github.com/mkideal/cli" "github.com/mkideal/cli/clis" ) @@ -24,15 +27,19 @@ func x2jCLI(ctx *cli.Context) error { clis.Verbose(2, "<%s> -\n %+v\n %+v\n %v\n", ctx.Path(), rootArgv, argv, ctx.Args()) Opts.Compact, Opts.Prefix, Opts.Indent, Opts.Protect, Opts.Verbose = rootArgv.Compact, rootArgv.Prefix, rootArgv.Indent, rootArgv.Protect, rootArgv.Verbose.Value() - // argv.Filei, argv.Fileo, - //return nil - return DoX2j() + // argv.Filei, argv.Fileo, + + return DoX2j(argv.Filei, argv.Fileo) } -// // DoX2j implements the business logic of command `x2j` -func DoX2j() error { +func DoX2j(cin io.Reader, cout io.Writer) error { fmt.Fprintf(os.Stderr, "%s v%s. x2j - XML to JSON\n", progname, version) // fmt.Fprintf(os.Stderr, "Copyright (C) 2019, Tong Sun\n\n") + + json, err := xj.Convert(cin) + abortOn("[::x2j] Convert from xml to json", err) + + fmt.Fprintln(cout, json.String()) return nil } diff --git a/jsonfiddle_main.go b/jsonfiddle_main.go index e774232..6967b4b 100644 --- a/jsonfiddle_main.go +++ b/jsonfiddle_main.go @@ -37,7 +37,7 @@ type OptsT struct { var ( progname = "jsonfiddle" // version tracks the release version. - version = "v0.5.0" + version = "0.5.0" date = "2019-05-30" )