Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在VSCode launcher.json命令中转义作为args传递的json中的逗号?_Flutter_Visual Studio Code_Vscode Debugger - Fatal编程技术网

Flutter 如何在VSCode launcher.json命令中转义作为args传递的json中的逗号?

Flutter 如何在VSCode launcher.json命令中转义作为args传递的json中的逗号?,flutter,visual-studio-code,vscode-debugger,Flutter,Visual Studio Code,Vscode Debugger,我想调试一个应用程序,需要将一个内嵌的json作为arg传递。 我做了以下工作: "configurations": [ { "name": "app DEV", "program": "lib/main.dart", "request": "launch",

我想调试一个应用程序,需要将一个内嵌的json作为arg传递。 我做了以下工作:

    "configurations": [
        {
            "name": "app DEV",
            "program": "lib/main.dart",
            "request": "launch",
            "type": "dart",
            "args": [
                "--dart-define=APP_BACKENDS={[{\"id\":\"default\",\"url\":\"https://localhost\",\"port\": \"8080\"},]}",
            ]
        }
但是APP_BACKENDS const值在第一个逗号中被去除。锁定它的打印:
{[{“id”:“default”


我只是想说清楚,这就是我获取打印值的方式:

static const _APP_BACKENDS =
      String.fromEnvironment('APP_BACKENDS', defaultValue: '{}');

阅读本文档后:,特别是 ,我知道,你需要使用
\\\\\
来实现你想要的。例如,在文档中只给出了这一点

要在程序启动时传递给程序的命令行参数的JSON数组。例如
[“arg1”,“arg2”]
。如果要转义字符,则需要对其进行双重转义。例如,
[“{\\\\”arg1\\\”:true}]
{arg1:true}
发送到应用程序

因此,在看了这个之后,您必须以适当的格式将JSON传递给args

args: [
  "--dart-define=APP_BACKENDS={[{\\\"id\\\":\\\"default\\\",\\\"url\\\":\\\"https://localhost\\\",\\\"port\\\": \\\"8080\\\"}]}"
]

这将完成您的工作!

我遇到了同样的问题-尝试将json字符串作为命令行参数传递给python脚本。在shell中可以正常工作,但在launch中无法执行相同的操作。json.VS代码将逗号解释为多个参数,并将多个-b参数传递到我的程序中(在我的案例中,4个独立的
-b
参数)

答:在arg值的末尾添加空格“”

我不明白为什么会这样,但确实如此。注意,我是单斜杠,而不是双引号

{
“名称”:“测试我的python代码”,
“类型”:“python”,
“请求”:“启动”,
“程序”:“${file}”,
“args”:[
“-r=/store/purchase”,
“-b={\'items\':[\'cake\',\'coffee\',\'touch comble\',\'masks\']}”
],
“控制台”:“集成终端”
},

是否也尝试转义逗号?尝试删除
端口定义后的空格,现在字符串将用
转义“
@limido,是的…编辑器没有accept@rioV8,删除空格没有区别在JSON中不能将数组作为对象键:
{[]}
在文档中的什么地方可以这样定义自己的变量?
{“类型”:“节点”、“请求”:“启动”、“名称”:“启动程序”、“程序”:“${workspaceFolder}/app.js”、“cwd”:“${workspaceFolder}”、“参数”:[“${env:USERNAME}”]}
@riov8这些不是用户定义的变量。我只是想知道它是否有效@rioV8@CristianoAlok正在他的评论中编写JavaScript,在那里不需要转义就可以证实这一点。虽然,对于我传入一个包含多个键、值对的字典的情况,我不得不在字典的开头加一个空格我也是。