来自列表 C# 的自定义字符串格式
Custom string format from list C#
我有一个包含数据列表的 class,如下所示:
public List<Data> data;
public class Data {
public String KEY;
public String VALUE;
}
我的问题是:如何获取下一个包含 List<Data>
数据的格式字符串?
{"key1":["value1"],"key2":["value2"]}
我尝试使用 Newtonsoft.Json.JsonConvert 但我得到了这个字符串:
[{"KEY":"key1","VALUE":"value1"},{"KEY":"key1","VALUE":"value1"}]
如果您想轻松使用Json.Net,只需先将您的List<Data>
转换为Dictionary<string, string>
:
var dict = data.ToDictionary<string, string[]>(d => d.KEY, d => new[] { d.VALUE });
JsonConvert.SerializeObject(dict);
这是"to a man with a hammer, every problem looks like a nail"的应用!
真诚地,贾斯汀的回答是最合适的,但我不介意介绍这个解决方法。 (P.S:未测试,可能需要一些故障排除)
private string convertToJSON(list<Data> data)
{
StringBuilder sb = new StringBuilder();
string str;
int i=0;
sb.Append("{"); // start
for(i=0; i<data.Count-1; i++)
{
// add each pair of data with a comma
str = String.Format("\"{0}\":[\"{1}\"], ", data[i].key, data[i].value);
sb.Append(str);
}
// add the last pair of data
sb.Append("\"{0}\":[\"{1}\"]", data[i+1].key, data[i+1].value);
sb.Append("}"); // close the sequence
string Result = sb.ToString(); // resulting string
return Result;
}
那么就这样调用吧string json = convertToJSON(data);
我有一个包含数据列表的 class,如下所示:
public List<Data> data;
public class Data {
public String KEY;
public String VALUE;
}
我的问题是:如何获取下一个包含 List<Data>
数据的格式字符串?
{"key1":["value1"],"key2":["value2"]}
我尝试使用 Newtonsoft.Json.JsonConvert 但我得到了这个字符串:
[{"KEY":"key1","VALUE":"value1"},{"KEY":"key1","VALUE":"value1"}]
如果您想轻松使用Json.Net,只需先将您的List<Data>
转换为Dictionary<string, string>
:
var dict = data.ToDictionary<string, string[]>(d => d.KEY, d => new[] { d.VALUE });
JsonConvert.SerializeObject(dict);
这是"to a man with a hammer, every problem looks like a nail"的应用! 真诚地,贾斯汀的回答是最合适的,但我不介意介绍这个解决方法。 (P.S:未测试,可能需要一些故障排除)
private string convertToJSON(list<Data> data)
{
StringBuilder sb = new StringBuilder();
string str;
int i=0;
sb.Append("{"); // start
for(i=0; i<data.Count-1; i++)
{
// add each pair of data with a comma
str = String.Format("\"{0}\":[\"{1}\"], ", data[i].key, data[i].value);
sb.Append(str);
}
// add the last pair of data
sb.Append("\"{0}\":[\"{1}\"]", data[i+1].key, data[i+1].value);
sb.Append("}"); // close the sequence
string Result = sb.ToString(); // resulting string
return Result;
}
那么就这样调用吧string json = convertToJSON(data);