linux,windows命令行中含有Json字符串如何转义
下面的三个示例命令行中,--params的参数是json。不同的系统的命令行环境,对json的处理不同。具体示例如下:
-
Linux
.cmc client contract user invoke --contract-name=testTBFT --method=save --sdk-conf-path=.sdk_config.yml --params="{"faile_name":"name007","file_hash":"ab3456df5799b87c77e7f88","time":"6543234"}" --sync-result=true
整个json体最外侧用双引号包起来,json中的key和value的双引号前面加
-
Windows dos
.cmc.exe client contract user invoke --contract-name=testTBFT --method=save --sdk-conf-path=.sdk_config.yml --params="{"""file_name""":"""name007""","""file_hash""":"""ab3456df5799b87c77e7f88""","""time""":"""6543234"""}" --sync-result=true
windows dos下,json中key和value的双引号需要变成 """ 进行转义
-
Windows powershell
.cmc client contract user invoke --contract-name=testTBFT --method=save --sdk-conf-path=.sdk_config1.yml --params={"faile_name":"name007","file_hash":"ab3456df5799b87c77e7f88","time":"6543234"} --sync-result=true
最特殊的是Windows Powershell,他的json体参数最外层必须用单引号包裹,json体中的key和value的双引号前面加
如果不这么做,会报如下错误:
Error: invalid character \ looking for beginning of object key string
解决方法参照:
上一篇:
通过多线程提高代码的执行效率例子