【发布时间】:2015-03-09 10:40:55
【问题描述】:
我将一个对象序列化为 json 字符串并通过命令行将其传递给应用程序,但是当我在应用程序中收到参数时,这不再是 json 字符串而是常规字符串。
我正在使用下面的代码来创建 json 字符串
var jsonStr = new JavaScriptSerializer().Serialize(obj);
我传递的字符串 - "{"name":"abc","place":"xyz"}"
我收到的字符串 - "{name:abc,place:xyz}";
如何维护json字符串的结构?
【问题讨论】:
-
没有 json 字符串这样的东西。只有字符串。 相关代码在哪里。即命令行,你如何解析它?您在创建命令行之前是否对引号进行了转义?命令行参数的原始值是多少? BTW JavascriptSerializer 是一个不再使用的遗留类,甚至 ASP.NET 使用 Json.NET
-
来自 json 字符串,我的意思是具有 json 结构的字符串,当您将对象序列化为 json 时得到。
-
同样,没有区别或需要特殊处理。如果您有问题,那是因为您传递的原始字符串不是您认为传递的字符串 - 您忘记对引号进行编码或者没有引号开始。您使用的命令行是什么,
args项的值是什么? -
如果你想将一个 json 字符串从一个命令行程序传递到另一个,你可以通过管道将第一个程序的输出传递给第二个程序,例如
first.exe|second.exe并将第二个程序更改为从控制台读取Console.ReadToEnd()。您不必转义或编码字符串并且脚本会更干净