上周遇到了一個非常詭異的坑,首先寫了兩個程式,第一個程式輸出成dll,第二個程式是控制台程式。 在第一個程式里,我使用了process去啟動第二個程式,同時傳入了一個Json作為參數,即: Process.Start(program2.exe, Jsonpara); 這個Jsonpara是將一個Li ...
上周遇到了一個非常詭異的坑,首先寫了兩個程式,第一個程式輸出成dll,第二個程式是控制台程式。
在第一個程式里,我使用了process去啟動第二個程式,同時傳入了一個Json作為參數,即:
Process.Start(program2.exe, Jsonpara);
這個Jsonpara是將一個List<List<string>>的泛型轉換成string型。
結果當我激動的等待程式的那一刻時,控制台報錯了,Newtonsoft.Json.reader巴拉巴拉錯誤。。。
排查過程:
1)程式二 控制台傳參數調試,無錯。。。
2)程式一檢查Json是不是正確,無錯。。。
3)程式二控制台輸出傳入的參數,有錯!!!
原因:Json將引號進行了轉義。。。當然你在程式一中的調試是正確顯示的,只不過控制台接收時它就變了!!!
解決:為了程式的穩定性,直接所傳的Json寫入一個txt文件內,然後控制台程式去讀取該文件。
註:如果在控制台去修改轉義過的參數然後正確讀取,或者在程式一中去修改json參數,使它轉義之後變成正確的參數,個人覺得得不償失,還沒寫入讀取文件方便。