在Tcl中打印JSON格式的数据
您好,我需要打印以下内容,因为它是在tcl {'root':[{'name':'Test', 'val':'1'},{'name':'Test2', 'val':'3'}]} 有没有办法在tcl中打印这些内容 好的,我现在试过了:在Tcl中打印JSON格式的数据,json,tcl,Json,Tcl,您好,我需要打印以下内容,因为它是在tcl {'root':[{'name':'Test', 'val':'1'},{'name':'Test2', 'val':'3'}]} 有没有办法在tcl中打印这些内容 好的,我现在试过了: puts "{'root':\[{'name':'$name', 'val':'$id'}" 但是这也不行记住,“[”意味着你想要执行某个东西,所以你需要逃避它 puts "{'root':\[{'name':'$name', 'val':'$val'},{'nam
puts "{'root':\[{'name':'$name', 'val':'$id'}"
但是这也不行记住,“[”意味着你想要执行某个东西,所以你需要逃避它
puts "{'root':\[{'name':'$name', 'val':'$val'},{'name':'$name','val':'$val'}\]}"
有了这些变化,我们应该会成功
此外,您可以在这里找到更多关于如何在tcl中管理JSON的示例:它只是
puts {{'root':[{'name':'Test', 'val':'1'},{'name':'Test2', 'val':'3'}]}}
也就是说,将整个字符串放在{
和}
之间,使其成为“文本”
更多信息在这里。所以你的意思是每次遇到[用反斜杠转义它?总是你不想执行括号内的内容。请参阅此处的更多信息:$val和$name值都定义好后,前一行会正确打印,但可能你还需要其他内容?@user856753,注意使用简单的变量替换(
$var
)在您的情况下是不够的:如果替换的值包含一个文字逗号或更有趣的东西,如aaa'},{
。因此,请密切关注wiki上关于JSON的内容,因为它讨论了正确转义构成JSON对象的值的方法。事实上,我误读了你的问题,没有明白第一个片段只是演示了你想从第二个片段中得到什么,对不起。无论如何,我认为不删除我的尝试是可以的回答是因为它处理了使用JSON的另一个可能的用例。从Tcl生成JSON的主要问题是类型系统之间根本不匹配,这使得决定如何序列化一个值非常困难(但朝另一个方向去很容易)
puts {{'root':[{'name':'Test', 'val':'1'},{'name':'Test2', 'val':'3'}]}}