在JSON.NET C#中序列化和反序列化singles值?
我使用VS 2012、.NET 3.5、JSON.NET。在JSON.NET C#中序列化和反序列化singles值?,c#,serialization,json.net,deserialization,C#,Serialization,Json.net,Deserialization,我使用VS 2012、.NET 3.5、JSON.NET。 我有几个单一值,如int、string类型。 我使用~分隔符设置字符串值。 我序列化字符串,将其保存在文件中。 然后,我从文件中反序列化字符串并拆分字符串 我希望避免按~字符分割,并且我希望避免创建新类型(具有属性get;set的类实体) 我认为使用匿名类型或动态是复杂的 有什么建议吗 单元测试正在工作: var value1 = "C20100101_0001"; var value2 = 678901; va
我有几个单一值,如int、string类型。
我使用
~分隔符设置字符串值。
我序列化字符串,将其保存在文件中。
然后,我从文件中反序列化字符串并拆分字符串
我希望避免按~字符分割,并且我希望避免创建新类型(具有属性get;set的类实体)
我认为使用匿名类型或动态是复杂的
有什么建议吗
单元测试正在工作:
var value1 = "C20100101_0001";
var value2 = 678901;
var value3 = "lorem ipsum text %&/() more test";
var value4 = "email@gmail.com";
string json = "{0}~{1}~{2}~{3}".FormatString(value1, value2, value3, value4);
var ser = JsonConvert.SerializeObject(json);
ser = JsonConvert.SerializeObject(json, Formatting.Indented);
System.IO.File.WriteAllText(@".\path.txt", ser);
var deser = System.IO.File.ReadAllText(@".\path.txt");
var json2 = JsonConvert.DeserializeObject<string>(deser);
Assert.AreEqual(json, json2);
var data = json2.Split(new char[] { '~' });
Assert.IsNotNull(data);
Assert.AreNotEqual(0, data.Length);
Assert.AreEqual(value1, data[0]);
var value1=“C20100101\u 0001”;
var值2=678901;
var value3=“lorem ipsum text%&/()更多测试”;
变量值4=”email@gmail.com";
string json=“{0}{1}{2}{3}”。FormatString(value1,value2,value3,value4);
var ser=JsonConvert.SerializeObject(json);
ser=JsonConvert.SerializeObject(json,Formatting.Indented);
System.IO.File.writealText(@“\path.txt”,ser);
var desr=System.IO.File.ReadAllText(@“\path.txt”);
var json2=JsonConvert.DeserializeObject(deser);
AreEqual(json,json2);
var data=json2.Split(新字符[]{'~'});
Assert.IsNotNull(数据);
Assert.arnotequal(0,data.Length);
Assert.AreEqual(值1,数据[0]);
据我所知,您可以将数组中的所有内容转储并序列化:
var list = new object[]{"C20100101_0001", 678901, "lorem ipsum text %&/() more test", "email@gmail.com"};
var json = JsonConvert.SerializeObject(list);
var deserialized = JsonConvert.DeserializeObject<object[]>(json);
var list=newobject[]{“C20100101_0001”,678901,“lorem ipsum text%&/()更多测试”email@gmail.com"};
var json=JsonConvert.SerializeObject(列表);
var deserialized=JsonConvert.DeserializeObject(json);
据我所知,您可以将数组中的所有内容转储并序列化:
var list = new object[]{"C20100101_0001", 678901, "lorem ipsum text %&/() more test", "email@gmail.com"};
var json = JsonConvert.SerializeObject(list);
var deserialized = JsonConvert.DeserializeObject<object[]>(json);
var list=newobject[]{“C20100101_0001”,678901,“lorem ipsum text%&/()更多测试”email@gmail.com"};
var json=JsonConvert.SerializeObject(列表);
var deserialized=JsonConvert.DeserializeObject(json);
据我所知,您可以将数组中的所有内容转储并序列化:
var list = new object[]{"C20100101_0001", 678901, "lorem ipsum text %&/() more test", "email@gmail.com"};
var json = JsonConvert.SerializeObject(list);
var deserialized = JsonConvert.DeserializeObject<object[]>(json);
var list=newobject[]{“C20100101_0001”,678901,“lorem ipsum text%&/()更多测试”email@gmail.com"};
var json=JsonConvert.SerializeObject(列表);
var deserialized=JsonConvert.DeserializeObject(json);
据我所知,您可以将数组中的所有内容转储并序列化:
var list = new object[]{"C20100101_0001", 678901, "lorem ipsum text %&/() more test", "email@gmail.com"};
var json = JsonConvert.SerializeObject(list);
var deserialized = JsonConvert.DeserializeObject<object[]>(json);
var list=newobject[]{“C20100101_0001”,678901,“lorem ipsum text%&/()更多测试”email@gmail.com"};
var json=JsonConvert.SerializeObject(列表);
var deserialized=JsonConvert.DeserializeObject(json);
使用@EagleEak answer,单元测试工作中的解决方案:
var value1 = "C20100101_0001";
var value2 = 678901;
var value3 = "lorem ipsum text %&/() more test";
var value4 = "email@gmail.com";
var list = new object[] { value1, value2, value3, value4 };
ser = JsonConvert.SerializeObject(list, Formatting.Indented);
System.IO.File.WriteAllText(@".\path.txt", ser);
deser = System.IO.File.ReadAllText(@".\path.txt");
var deserialized = JsonConvert.DeserializeObject<object[]>(deser);
Assert.IsNotNull(deserialized);
Assert.AreNotEqual(0, deserialized.Length);
Assert.AreEqual(value1, deserialized[0]);
var value1=“C20100101\u 0001”;
var值2=678901;
var value3=“lorem ipsum text%&/()更多测试”;
变量值4=”email@gmail.com";
var list=新对象[]{value1,value2,value3,value4};
ser=JsonConvert.SerializeObject(列表,格式化,缩进);
System.IO.File.writealText(@“\path.txt”,ser);
desr=System.IO.File.ReadAllText(@“\path.txt”);
var deserialized=JsonConvert.DeserializeObject(deser);
IsNotNull(反序列化);
Assert.AreNotEqual(0,反序列化的.Length);
aresequal(值1,反序列化为[0]);
使用@EagleEak answer,单元测试工作中的解决方案:
var value1 = "C20100101_0001";
var value2 = 678901;
var value3 = "lorem ipsum text %&/() more test";
var value4 = "email@gmail.com";
var list = new object[] { value1, value2, value3, value4 };
ser = JsonConvert.SerializeObject(list, Formatting.Indented);
System.IO.File.WriteAllText(@".\path.txt", ser);
deser = System.IO.File.ReadAllText(@".\path.txt");
var deserialized = JsonConvert.DeserializeObject<object[]>(deser);
Assert.IsNotNull(deserialized);
Assert.AreNotEqual(0, deserialized.Length);
Assert.AreEqual(value1, deserialized[0]);
var value1=“C20100101\u 0001”;
var值2=678901;
var value3=“lorem ipsum text%&/()更多测试”;
变量值4=”email@gmail.com";
var list=新对象[]{value1,value2,value3,value4};
ser=JsonConvert.SerializeObject(列表,格式化,缩进);
System.IO.File.writealText(@“\path.txt”,ser);
desr=System.IO.File.ReadAllText(@“\path.txt”);
var deserialized=JsonConvert.DeserializeObject(deser);
IsNotNull(反序列化);
Assert.AreNotEqual(0,反序列化的.Length);
aresequal(值1,反序列化为[0]);
使用@EagleEak answer,单元测试工作中的解决方案:
var value1 = "C20100101_0001";
var value2 = 678901;
var value3 = "lorem ipsum text %&/() more test";
var value4 = "email@gmail.com";
var list = new object[] { value1, value2, value3, value4 };
ser = JsonConvert.SerializeObject(list, Formatting.Indented);
System.IO.File.WriteAllText(@".\path.txt", ser);
deser = System.IO.File.ReadAllText(@".\path.txt");
var deserialized = JsonConvert.DeserializeObject<object[]>(deser);
Assert.IsNotNull(deserialized);
Assert.AreNotEqual(0, deserialized.Length);
Assert.AreEqual(value1, deserialized[0]);
var value1=“C20100101\u 0001”;
var值2=678901;
var value3=“lorem ipsum text%&/()更多测试”;
变量值4=”email@gmail.com";
var list=新对象[]{value1,value2,value3,value4};
ser=JsonConvert.SerializeObject(列表,格式化,缩进);
System.IO.File.writealText(@“\path.txt”,ser);
desr=System.IO.File.ReadAllText(@“\path.txt”);
var deserialized=JsonConvert.DeserializeObject(deser);
IsNotNull(反序列化);
Assert.AreNotEqual(0,反序列化的.Length);
aresequal(值1,反序列化为[0]);
使用@EagleEak answer,单元测试工作中的解决方案:
var value1 = "C20100101_0001";
var value2 = 678901;
var value3 = "lorem ipsum text %&/() more test";
var value4 = "email@gmail.com";
var list = new object[] { value1, value2, value3, value4 };
ser = JsonConvert.SerializeObject(list, Formatting.Indented);
System.IO.File.WriteAllText(@".\path.txt", ser);
deser = System.IO.File.ReadAllText(@".\path.txt");
var deserialized = JsonConvert.DeserializeObject<object[]>(deser);
Assert.IsNotNull(deserialized);
Assert.AreNotEqual(0, deserialized.Length);
Assert.AreEqual(value1, deserialized[0]);
var value1=“C20100101\u 0001”;
var值2=678901;
var value3=“lorem ipsum text%&/()更多测试”;
变量值4=”email@gmail.com";
var list=新对象[]{value1,value2,value3,value4};
ser=JsonConvert.SerializeObject(列表,格式化,缩进);
System.IO.File.writealText(@“\path.txt”,ser);
desr=System.IO.File.ReadAllText(@“\path.txt”);
var deserialized=JsonConvert.DeserializeObject(deser);
IsNotNull(反序列化);
Assert.AreNotEqual(0,反序列化的.Length);
aresequal(值1,反序列化为[0]);