【问题标题】:JSON RPC Serializing Lists of Objects in c#JSON RPC序列化c#中的对象列表
【发布时间】:2012-04-16 09:48:24
【问题描述】:

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

    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;

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

(我知道我必须在某处创建一个 List[] 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 属性来获得这种效果? 谢谢!

【问题讨论】:

    标签: c# silverlight windows-phone json-rpc


    【解决方案1】:

    我不完全确定我是否了解您所追求的目标,但请查看以下内容,看看我是否走在正确的轨道上。

    像这样更新你的课程:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2016-05-30
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多