首先是关于该项目的一些信息;这是我创建的课程:
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时,我得到一个空引用异常,阻止我的工作进行任何进展..我已经尝试了很多,但无济于事。
testOV.arrOptions[0] = col1;
给了我例外;任何帮助都非常感谢..
(我知道我必须在某处创建一个List [] xx = new List [MAX],但我无法实现它。)
补充问题:
发送json字符串时: {\ “ID \”:\ “1 \” \ “方法\”:\ “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#\ “\ ”订单信息\“:\ ”1; 0; 0#\“}}}”
我应该添加哪个JSON属性才能获得此效果? 谢谢!
答案 0 :(得分:0)
我不完全确定我明白你的目标是什么,但请看看以下内容,看看我是否走在正确的轨道上。
像这样更新你的课程:
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;