我試圖在使用過程中使用自定義JsonConverter將List<Tuple<string,string>>
轉換爲List<Tuple<string, JRaw>>
。所以如果我有一個List<Tuple<string, string>>
當我在該列表上預製JsonConvert.SerializeObject
時,我希望它將該列表序列化,就好像它是List<Tuple<string,JRaw>>
類型一樣。原因在於Tuple的Item2
字段已經格式化爲Json,所以我想將它包裝在JRaw值中,以便在序列化期間不會將其讀作字符串。.NET JsonConverter元組列表
問題是JsonConverters上的文檔是稀疏的。我一直在尋找類似的問題遍佈堆棧溢出和谷歌,似乎無法找到如何創建JsonConverters一個很好的教程。任何關於這個特定示例的幫助或者指向一個很好的教程的鏈接都會很棒。
對於那些你誰是好奇,這是我第一次嘗試:
```
public class DataJsonConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
List<Tuple<string, JRaw>> jlist = ((List<Tuple<string, string>>)value).Select(t => new Tuple<string, JRaw>(t.Item1, new JRaw(t.Item2))).ToList();
new JArray(jlist).WriteTo(writer);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return JsonConvert.DeserializeObject<List<Tuple<string, string>>>(reader.ReadAsString());
}
public override bool CanConvert(Type objectType)
{
throw new NotImplementedException();
}
}
```
這應該清理,我知道我是什麼樣的任何誤解當涉及到編寫JsonConverters時。注意,我也是C#的新手,作爲來自Java的語言。
'這個具體的例子或鏈接'的任何幫助,會很好,如果我們知道你的問題.. – EZI
你到目前爲止嘗試過什麼,不起作用?你作爲錯誤或意外輸出得到什麼?如果我們不完全瞭解您的問題,我們將無法幫助您:) –
那麼您的_actual_問題是什麼?你的代碼有錯誤嗎?意外的結果? –