在.net core中传递(未转义/未编码)JSON字符串作为命令行参数

zmeyuzjn  于 2023-02-06  发布在  .NET
关注(0)|答案(2)|浏览(217)

到目前为止,我已经读了很多关于这个主题的帖子,但似乎没有一个能解决我的问题。
我想将JSON字符串作为参数传递给命令行。(传递的JSON字符串不能更改,例如,转义所有引号或将其转换为base 64。不过,将其作为一个整体 Package 为"""也可以)。
如何将整个JSON作为一个字符串从string[] args变量中取出?
示例:

myprogram.exe myfunction {"Id": 0, "Some": "thing"}

我尝试的所有内容都以. net核心字符串结束,没有双引号,也没有string[] args中的多个条目
多谢帮忙!

jgovgodb

jgovgodb1#

由于JSON似乎不适合参数传递,我将从文件中读取它。并且只将文件路径作为命令行参数传递。

qybjjes1

qybjjes12#

实际上,你可以在命令行中传递JSON作为参数,它只是一个字符串作为任何其他参数。这里的问题是,双引号(“)之间的任何内容都将被解释为单个参数。这是命令行允许参数包含空格或其他特殊字符的方式。
要使用JSON,只需将其放在双引号之间,并通过添加反斜线来转义其中的任何双引号:

myprogram.exe myfunction "{\\"Id\\": 0, \\"Some\\": \\"thing\\"}"

相关问题