StringBuild的一个小问题
今天在项目开发的过程中写了一小段代码:
sb_result.AppendFormat("{\"SmsmTaskModeName\":\"{0}\",\"SmsmEmpName\":\"{1}\"", dt.Rows[0]["smsmTaskModeName"].ToString(), dt.Rows[0]["smsmEmpName"].ToString());
注意红色的 {,能编译通过,在执行到此处的时候 提示:input string was not in a correct format错误。
去掉 红色的 { 就正确了,用转义字符是没用的。
处理此问题有两个方法:
方法一:
巧妙的处理下:sb_result.AppendFormat("{2}\"SmsmTaskModeName\":\"{0}\",\"SmsmEmpName\":\"{1}\"", dt.Rows[0]["smsmTaskModeName"].ToString(), dt.Rows[0]["smsmEmpName"].ToString(),"{");
方法二:连续输出两个括号即可
sb_result.AppendFormat("{{\"SmsmTaskModeName\":\"{0}\",\"SmsmEmpName\":\"{1}\"", dt.Rows[0]["smsmTaskModeName"].ToString(), dt.Rows[0]["smsmEmpName"].ToString());
这样子就OK了。。
看看微软的官方:http://msdn.microsoft.com/en-us/library/txafckwd.aspx
Each format item takes the following form and consists of the following components:
{ index[,alignment][:formatString]}
The matching braces ("{" and "}") are required.