我需要使用.NET/Newtonsoft JsonConvert.SerializeObject方法进行一些JSON序列化。我有一个类用于存储出站变量,称为JSONVars。在.net中使用JsonConvert对具有可变长度的对象进行JSON序列化
我的问题是关于如何处理下面示例中的“答案”变量。
姓和名在循环中总是有一个返回值,所以这很容易。然而,答案部分可能在循环中有多个返回。
的理论出站JSON字符串看起来像:
{
"FirstName" : "John",
"LastName" : "Doe",
"FavoriteVacation" : "Beach",
"FavoriteState" : "FL"
.....
}
与 “...” 表示1至在循环n个可能的回报。
正如你所看到的,我发送JSON字符串的地方需要在一个格式正确的JSON格式的逗号分隔的字符串中包含它,所以我无法将Answer块作为JSON数组发送,就像这(它会失败):
{
"FirstName" : "John",
"LastName" : "Doe",
"Answers" : [
"FavoriteVacation" : "Beach",
"FavoriteState" : "FL" .....
}
我如何调整,这样我可以“添加”到JSON序列串1到n“答案”块?
这里是我的代码:
public class JSONVars
{
public string FirstName;
public string LastName;
//??? public string Answer;
}
static void Main(string[] args)
{
foreach (var objReturn in objlst)
{
JSONVars jsonvars = new JSONVars();
jsonvars.FirstName = objReturn.FirstName;
jsonvars.LastName = objReturn.LastName;
foreach (var answerobj in objReturn.SurveyAnswers)
{
if (answerobj.Vacation != null)
{
foreach (var answerobjVaca in answerobj.Vacation)
{
//???????
//answerobjVaca.QuestionText;
//answerobjVaca.AnswerText;
}
}
}
var jsonHolder = JsonConvert.SerializeObject(jsonvars);
}
}
的jsonHolder变种是正在发送到外部服务,并需要为JSON传输正确序列化。
为了简洁起见,请注意一些代码(如objReturn是如何填充的)。
如果您需要动态添加或删除属性,请使用'Dictionary'而不是'JSONVars'类。 –