JSON RPC 序列化 C# 中的对象列表

本文关键字:对象 列表 RPC 序列化 JSON | 更新日期: 2023-09-27 18:31:26

首先是关于项目的一些信息;这是我创建的类:

    public class SendOverview
{
    public string id   { get; set;}
    public string method { get; set;}
    public SendOV Params {get; set;}
}
public class SendOV
{
    public string overviewID { get; set; }
    public string overviewType { get; set; }
    public string AORParams { get; set; }
    public SentDatas arrOptions { get; set; }

}
public class SentDatas
{
    public string columnInfo { get; set; }
    public string orderInfo { get; set; }
}

一个非常简单的类,我想通过创建一个对象来序列化整个事情(因此,SendOverview 类),如下所示:

        SendOverview test1 = new SendOverview();
        test1.id = "1";
        test1.method = "getOverviewInfo";
        SendOV testOV = new SendOV();
        testOV.AORParams = null;
        testOV.overviewID = tempDID;
        testOV.overviewType = "Stock Items";

        SentDatas col1 = new SentDatas();
        col1.columnInfo = "1;100;1;1#";
        col1.orderInfo = "1;0;0#";

现在,一旦我尝试将 col1 数据添加到 testOV 的 arrOptions 中,我就会得到一个 nullreference 异常,它会阻止我的工作进行任何进度。我尝试了很多,但无济于事。

testOV.arrOptions[0] = col1;

给了我例外;任何帮助都非常感谢。

(我知道我必须在某处创建一个列表[] xx = new List[MAX],但我无法实现它。

免费提问 :

发送 JSON 字符串时:{''"id''":''"1''",''"method''":''"getOverviewInfo

''",''"Params''":{''"overviewID''":''"0000004297''",''"overviewType''":''"Stock Items''",''"AORParams''":null,''"arrOptions''":{''"columnInfo''":''"1;100;1;1#''",''"orderInfo''":''"1;0;0#''"}}}"所有命名参数

应该只有值,而不能有命名参数;调整后:

{''"id''":''"1''",''"method''":''"getOverviewInfo''",''"Params''":{"0000004297''","Stock Items",null,{''"columnInfo''":''"1;

100;1;1#''",''"orderInfo''":''"1;0;0#''"}}}"

我应该添加哪个 JSON 属性才能获得此效果?谢谢!

JSON RPC 序列化 C# 中的对象列表

我不完全确定我是否理解你所追求的是什么,但看看以下内容,看看我是否走在正确的轨道上。

按如下方式更新您的课程:

public class SendOV
{
    public string overviewID { get; set; }
    public string overviewType { get; set; }
    public string AORParams { get; set; }
    public List<SentDatas> arrOptions { get; set; }
}

然后将您的创建代码更新为:

SendOverview test1 = new SendOverview();
test1.id = "1";
test1.method = "getOverviewInfo";
SendOV testOV = new SendOV();
testOV.AORParams = null;
testOV.overviewID = tempDID;
testOV.overviewType = "Stock Items";
List<SentDatas> sentDatasList = new List<SentDatas>();
SentDatas col1 = new SentDatas();
col1.columnInfo = "1;100;1;1#";
col1.orderInfo = "1;0;0#";
sentDatasList.Add(col1);
testOV.arrOptions = sentDatasList;