簡體   English   中英

清單C#中的自定義字符串格式

[英]Custom string format from list C#

我有一個帶有數據列表的類,如下所示:

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);

這是“對於有錘子的男人來說,每個問題都像釘子一樣”的應用! 誠摯的,賈斯汀的答案是最合適的,但是我不介意介紹這項工作。 (PS:未經測試,可能需要一些故障排除)

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);一樣調用它: string json = convertToJSON(data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM