C# string.Format json格式字符串報錯”輸入字符串的格式不正確“


當我們在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;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM