简体   繁体   English

Json.NET将类列表作为属性

[英]Json.NET to list of class as attribute

I build a rest service which output are json. 我建立了一个REST服务,其输出是JSON。 I using Newtonsoft.Json. 我使用Newtonsoft.Json。

This is my class. 这是我的课。

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; }
}

but when I test my rest service my result are: 但是当我测试我的休息服务时,我的结果是:

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

it not show the data in list. 它不显示列表中的数据。 I know something is wrong. 我知道出事了 Can anybody help? 有人可以帮忙吗?

This one of my collection class 这是我的收藏课之一

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;
    }
}

Your FRUTE class doesn't have public properties that are required for Json serialization. 您的FRUTE类没有Json序列化所需的公共属性。 Encapsulate you private fields and all will work as expected. 将您的私有字段封装起来,所有字段都将按预期工作。

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; }
    }
    //...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM