我试图在使用过程中使用自定义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_问题是什么?你的代码有错误吗?意外的结果? –