从对象处理空的Json数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从对象处理空的Json数组相关的知识,希望对你有一定的参考价值。
我有一个json对象返回两个空数组“subQuestions”:[]和“answers”:[]
我已经为对象创建了类,但是我无法让它工作,这是我到目前为止所做的。
宾语
"questions": [
{
"questionId": "1",
"question": "Ipsum",
"helpText": null,
"questionType": "MultipleChoice",
"answerChoices": [
{
"answerChoiceId": "b2b-2.01-answer1",
"value": "Lorem",
"subQuestions": []
}
],
"answers": []
}
类
public class AnswerChoice
{
public string answerChoiceId { get; set; }
public string value { get; set; }
public List<object> subQuestions { get; set; }
}
public class Question
{
public string questionId { get; set; }
public string question { get; set; }
public object helpText { get; set; }
public string questionType { get; set; }
public List<AnswerChoice> answerChoices { get; set; }
public List<object> answers { get; set; }
}
public class ObjectRoot
{
public string productId { get; set; }
public List<Question> questions { get; set; }
}
var jsonBody = new ObjectRoot()
{
productId = productId,
questions = new[]
{
new Question() {
questionId = "b2b-2.01",
question ="Vad är syftet med ert engagemang hos oss?",
helpText = null,
questionType = "MultiChoise",
answerChoices = new []{
new AnswerChoice{
answerChoiceId = "",
value = "",
**HERE is what it gets tricky for me**
}
}
}
}
};
对我来说棘手的部分是在value =“”之后,并且需要添加subQuestion对象,尝试了多种方法但没有运气。
答案
在您的类中,所有集合都是List
而不是数组。所以要使它工作,你需要调用ToList
扩展方法。对于空集合,只需调用List
构造函数
var jsonBody = new ObjectRoot()
{
productId = "productId",
questions = new[]
{
new Question() {
questionId = "b2b-2.01",
question ="Vad är syftet med ert engagemang hos oss?",
helpText = null,
questionType = "MultiChoise",
answerChoices = new []{
new AnswerChoice{
answerChoiceId = "",
value = "",
subQuestions = new List<object>() // empty collection
}
}.ToList(),
answers = new List<object>()
}
}.ToList()
};
以上是关于从对象处理空的Json数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 R 中使用 tidyjson 处理嵌套的空 JSON 数组
Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”