Json.NET将类列表作为属性

时间:2013-07-23 01:40:34

标签: c# json rest

我构建了一个休息服务,其输出是json。我使用的是Newtonsoft.Json。

这是我的班级。

public class DownloadPDA
{
    public List<FRUTE> lsRute { get; set; }
    public List<FCUSTMST> lsCustomer { get; set; }
    public List<FMASTER> lsMaster { get; set; }
    public List<FNOTEC> lsNotec { get; set; }
    public List<FINFO> lsInfo { get; set; }
    public List<FBRAND> lsBrand { get; set; }
    public List<FKPL> lsKpl { get; set; }
}

但是当我测试我的休息服务时,我的结果是:

{"downloadDataResult":"{"lsBrand":[{}],"lsCustomer":[{},{},{}],"lsInfo":[],"lsKpl":null,"lsMaster":[{},{},{},{},{}],"lsNotec":[],"lsRute":[{},{},{}]}"}

它不会显示列表中的数据。我知道有些事情是错的。有人可以帮忙吗?

这是我的一个集合类

public class FRUTE
{
    private String norute;
    private String custno;
    private String flag;
    private String st_visit;
    private float amount;
    private int jmlvisit;

    public FRUTE() { }

    public void getData(DCTRTDTO dto) {
        this.norute = dto.NOROUT;
        this.custno = dto.NOCUST;
        this.flag = dto.FLAG;
        this.st_visit = "not yet";
        this.amount = 10;
        this.jmlvisit = 1;
    }

    public static List<FRUTE> getList(List<DCTRTDTO> lsRute)
    {
        List<FRUTE> ls = new List<FRUTE>();
        FRUTE info = new FRUTE();

        foreach (DCTRTDTO dto in lsRute)
        {
            info.getData(dto);
            ls.Add(info);
        }

        return ls;
    }
}

1 个答案:

答案 0 :(得分:1)

您的FRUTE类没有Json序列化所需的公共属性。 封装您的私有字段,所有字段都将按预期工作。

public class FRUTE
{
    private String norute;
    private String custno;

    public string Norute
    {
        get { return norute; }
        set { norute = value; }
    }

    public string Custno
    {
        get { return custno; }
        set { custno = value; }
    }
    //...
}