C#基础-关于用json给控制台程序传值的坑_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#基础-关于用json给控制台程序传值的坑

C#基础-关于用json给控制台程序传值的坑

 2016/8/29 5:31:49  airforce094  程序员俱乐部  我要评论(0)
  • 摘要:上周遇到了一个非常诡异的坑,首先写了两个程序,第一个程序输出成dll,第二个程序是控制台程序。在第一个程序里,我使用了process去启动第二个程序,同时传入了一个Json作为参数,即:Process.Start(program2.exe,Jsonpara);这个Jsonpara是将一个List<List<string>>的泛型转换成string型。结果当我激动的等待程序的那一刻时,控制台报错了,Newtonsoft.Json.reader巴拉巴拉错误。。。排查过程:1
  • 标签:程序 C# JSON JS

上周遇到了一个非常诡异的坑,首先写了两个程序,第一个程序输出成dll,第二个程序是控制台程序。

在第一个程序里,我使用了process去启动第二个程序,同时传入了一个Json作为参数,即:

Process.Start(program2.exe, Jsonpara);

这个Jsonpara是将一个List<List<string>>的泛型转换成string型。

结果当我激动的等待程序的那一刻时,控制台报错了,Newtonsoft.Json.reader巴拉巴拉错误。。。

排查过程:

1)程序二 控制台传参数调试,无错。。。

2)程序一检查Json是不是正确,无错。。。

3)程序二控制台输出传入的参数,有错!!!

原因:Json将引号进行了转义。。。当然你在程序一中的调试是正确显示的,只不过控制台接收时它就变了!!!

解决:为了程序的稳定性,直接所传的Json写入一个txt文件内,然后控制台程序去读取该文件。

注:如果在控制台去修改转义过的参数然后正确读取,或者在程序一中去修改json参数,使它转义之后变成正确的参数,个人觉得得不偿失,还没写入读取文件方便。

发表评论
用户名: 匿名