格式化JSON字符串时出错

时间:2014-10-23 08:13:42

标签: c# windows

JSON数据

"participant": {"id": "1"},

我尝试了以下代码。但是我得到了一个异常

String.Format(("\n\"{0}\":{\"{1}\":\"{2}\"}","participant","id","1"));

例外是

未处理的类型' System.FormatException'发生在mscorlib.dll

附加信息:索引(从零开始)必须大于或等于零且小于参数列表的大小。

1 个答案:

答案 0 :(得分:3)

当你在string.Format调用中使用花括号时,你需要使用双花括号来转义它们。

例如:

var str = string.Format("\"{0}\": {{ \"id\": \"{1}\" }}", "participant", 5);

在string.Format中,您使用从0(零)到数字排序的占位符。它们放在单个花括号中,因此需要转义json花括号。

另一种选择是使用众多Json库中的一个为您进行序列化,例如Json.NET(http://james.newtonking.com/json

例如

var anon = new { participant = "bob", id = 5 };
var json = JsonConvert.SerializeObject(anon);