仅获取JSON序列化列表所需的属性

时间:2015-01-07 19:54:36

标签: c# serialization

目前我有一个这样的列表:

List<CaseTest> ct = new List<CaseTest>();

我的CaseTest是一个持有Test的对象:

public class CaseTest
{
    [DataMember]
    public ITest Test;
}

ITestfactory,有两种不同类型的测试:

  1. 选择题
  2. 式开口
  3. 他们有相似和不同的属性,但我认为这个问题并不重要。

    当我将List<CaseTest>序列化为JSON时,就像这样:

    using (MemoryStream memStream = new MemoryStream())
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<CaseTest>));
        ser.WriteObject(memStream, ct);
    
        memStream.Position = 0;
        using (StreamReader sr = new StreamReader(memStream))
        {
            var testing = sr.ReadToEnd();
        }
    }
    

    var testingct内的所有内容输出为JSON对象。我的意思是一切!这是这样的(仅使用MultipleChoice测试:

    "[{\"Test\":  {\"__type\":\"MultipleChoice:#TestApp.FileUpload.Models\",
    \"Comments\":\"\",
    \"Grade\":\"92\",
    \"Student\":\"14\",
    \"StudentPassed\":true}}]"
    

    我甚至不确定为什么{\"__type\":\"MultipleChoice:#TestApp.FileUpload.Models\",甚至显示真的,除了它是父母之前我在调试时可以看到任何我的实际属性。

    我真的只想将Comments, Grade, Student, and StudentPassed作为一个对象而不是别的。我不需要知道它是否是多项选择。只是物理数据。对不起,如果这没有意义。我正在尽我所能,非常欢迎填补空白。任何人都可以提供一些帮助/输入吗?

    修改

    请注意,我希望继续使用DataContractJsonSerializer

0 个答案:

没有答案