2017-11-16 35 views
0

json::writeを使用しているときにjsonデータを1行に整列させる問題に直面しています。例えばTCL to JSON:json :: writeアラインメントメソッドの使用

、TCLの辞書は

set arr {a b c d} 

JSONへの変換

foreach {key value} $arr { 
    puts [json::write string {*}$value] 
} 

出力である:{"a" : "b", "c" : "d"}に出力上に変換する[json:write aligned]を使用する

{ 
    "a" : "b", 
    "c" : "d" 
} 

答えて

2

あなたはindentedフラグを変更したい:

% package req json::write 
1.0.3 
% set arr {a b c d} 
a b c d 

% json::write indented 
1 
% json::write object {*}$arr 
{ 
    "a" : b, 
    "c" : d 
} 

% json::write indented false 
false 
% json::write object {*}$arr 
{"a":b,"c":d} 

うーん、なるほど値がループ

ためスキップ、...

% for {set i 1} {$i < [llength $arr]} {incr i 2} {lset arr $i [json::write string [lindex $arr $i]]} 
% set arr 
a {"b"} c {"d"} 
% json::write object {*}$arr 
{"a":"b","c":"d"} 

または、ヨハネスのおかげで引用されていません

json::write object {*}[dict map {key val} $arr {json::write string $val}] 
+1

'for'の代わりに' dict map'を使用しますか? –

関連する問題