我正在实现自定义toJson()方法。
我的班级成员之一是字典。
我做了:
sb.Append("\"DateSource\" : {");
foreach (var row in DateSource)
{
sb.Append("[");
sb.Append(string.Format("\"RowKey\" : {0}", row.Key));
sb.Append(string.Format("\"RowData\" : {0}", row.Value));
sb.Append("]");
}
sb.Append("}");
如何避免转换中的最后一个逗号?
答案 0 :(得分:6)
您可以使用:
sb.Append("[");
sb.Append(string.Join(
", ",
DateSource.Select(r => string.Format("\"RowKey\" : {0}, \"RowData\" : {1}", r.Key, r.Value))));
sb.Append("]");
答案 1 :(得分:4)
我使用以下扩展名:
public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator)
{
return String.Join(separator, source.Select(e => e.ToString()).ToArray());
}
如果您需要格式化的内容:
public static String ToSeparatedString<T>(this IEnumerable<T> source, String separator, String format)
{
return String.Join(separator, source.Select(e => String.Format(format, e)).ToArray());
}
使用示例
var myList = new List<String> {"a", "b", "c"};
String result = myList.ToSeparatedString(",", "[{0}]");
// result is "[a],[b],[c]" here
答案 2 :(得分:1)
sb.Append("\"DateSource\" : {");
string separator = string.Empty;
foreach (var row in DateSource)
{
sb.Append(separator);
sb.Append("[");
sb.Append(string.Format("\"RowKey\" : {0},", row.Key));
sb.Append(string.Format("\"RowData\" : {0}", row.Value));
sb.Append("]");
separator = ",";
}
sb.Append("}");
考虑到如果row.Key和/或row.Value表示字符串,则需要应用这样的格式
sb.Append(string.Format("\"RowKey\" : \"{0}\"", row.Key));
sb.Append(string.Format("\"RowData\" : \"{0}\"", row.Value));
请注意\"{0}\"
答案 3 :(得分:0)
我想我只会使用String.replace() 替换每一个
, ] --> ]
, } --> }