元组如何从JSON序列化和反序列化?
我很好奇Tuple
序列化和反序列化。 我使用关键字“json”和“tuple”搜索,但我找不到我想要的东西。
我通过UnitTest
和Json.net进行测试,测试代码如下。 结果显示Tuple
是可序列化和可反序列化的。 所以我可以在我的应用程序中使用它们。
测试代码
public class Foo { public List> Items { get; set; } public Foo() { Items = new List>(); } public override string ToString() { StringBuilder sb = new StringBuilder(); foreach (var a in Items) { sb.Append(a.Item1 + ", " + a.Item2 + ", " + a.Item3.ToString() + "\r\n"); } return sb.ToString(); } } [TestClass] public class NormalTests { [TestMethod] public void TupleSerialization() { Foo tests = new Foo(); tests.Items.Add(Tuple.Create("one", "hehe", true)); tests.Items.Add(Tuple.Create("two", "hoho", false)); tests.Items.Add(Tuple.Create("three", "ohoh", true)); string json = JsonConvert.SerializeObject(tests); Console.WriteLine(json); var obj = JsonConvert.DeserializeObject(json); string objStr = obj.ToString(); Console.WriteLine(objStr); } }
评论
Tuple.Create("own","hehe",true)
将序列化为字符串{“Item1”:“one”,“Item2”:“hehe”,“Item3”:true},并且可以反序列化to Tuple
type。
如果您正在寻找简短的答案。 我正在使用JsonConvert 。
var testTuple = Tuple.Create(1234, "foo", true); var serialized = JsonConvert.SerializeObject(testTuple); Console.WriteLine(serialized); // prints: {"Item1":1234,"Item2":"foo","Item3":true}
我做了一个小小的小提琴 。