从对象处理空的Json数组

问题描述 投票:-2回答:1

我有一个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对象,尝试了多种方法但没有运气。

c# json
1个回答
0
投票

在您的类中,所有集合都是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()
};
© www.soinside.com 2019 - 2024. All rights reserved.