當我們在string.Format中傳入Json字符串時,會報”輸入字符串的格式不正確“,這是因為json的"{"符號的問題,最開始我是想着用轉義一下"{",但是轉義后我發現原來的非json占位格式缺報錯了,因為我破壞了它的占位格式
問題還是沒有解決,但是最終從另一個角度解決了我的需求,那就是從把string.Format封裝起來,在內部進行判斷,如果它的orgs的length為0,那么我們就直接輸出format,否則才調用string.Format,一般情況下我們不會在json字符串中使用占位符,所以,要么我們直接傳入json字符串,要么把json作為orgs的一個傳進去,這樣基本就避免了報錯了,看代碼
class Program { static void Main(string[] args) { try { string str1 = "{\"aaa\":\"123\",\"bbb\":{\"ccc\":\"456\"}}"; //Console.WriteLine(string.Format(str1)); //直接將json傳入string.Format中會報錯,因為json中的{}和string.Format的占位符沖突了 Console.WriteLine(Format(str1)); //封裝一下,直接傳入json就不會報錯了 Console.WriteLine(Format("ct:{0},rs:123", str1)); //將json作為一個org傳入也不會報錯 //Console.WriteLine(Format("{\"ct\":\"{0}\",\"rs\":123}",123)); //當然如果在json中使用占位符,依然會報錯,然而一般情況下咱們也不會這么用 } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.ReadKey(); } private static string Format(string msg, params object[] ps) { if (ps.Length > 0) { msg = string.Format(msg, ps); } return msg; } }