在JSON.NET C#中序列化和反序列化singles值?

在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

我使用VS 2012、.NET 3.5、JSON.NET。
我有几个单一值,如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]);