I want to get nested json object result after its deserialization as in following code.
var matrixDto = new QuestionMatrixDto();
// First child Dto:
matrixDto.displayAnswers = "displayAnswers Test";
matrixDto.questionWeight = 10;
// Second child dto:
var essayDto = new QuestionEssayDto();
essayDto.addToBank= true;
essayDto.questionLength = 10;
// Parent Dto:
var obj = new V2ObjectDto();
obj.name = "object test";
obj.childObjects.Add(matrixDto);
obj.childObjects.Add(essayDto);
JsonSerializerSettings settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All
};
var serlizeObj = JsonConvert.SerializeObject(obj,settings );
var deserlizeObj = JsonConvert.DeserializeObject<V2ObjectDto>(serlizeObj,settings );
But now when I am trying to access
var matrixResult = deserlizeObj.childObjects.FirstOrDefault();
matrixResult.displayAnswers;
matrixResult.displayAnswers
is not accessible and have no definition
I need same result as before serialize object after its deserialization, but the problem is that I am not able to get any question (or child Dto) attribute value after its deserialization.
Serialization result:
{
"id": null,
"text": null,
"guid": null,
"containerId": null,
"name": "object test",
"testName": null,
"childObjects": [{
"questionText": null,
"testStatus": null,
"displayAnswers": "displayAnswers Test",
"questionWeight": 10,
"answers": [],
"questions": [],
"questionAnswersDto": [],
"userAnswer": {
"selectedAnswers": [],
"id": null,
"comments": null,
"questionId": null
},
"keywords": null,
"commentObj": {
"watermarkText": null,
"commentText": null,
"textType": null,
"userComment": null,
"isCorrect": false,
"totalCharacters": null
},
"questionSelectDto": {
"questionType": null,
"addToBank": false,
"numberOfAnswersAllow": null,
"displayAnsweras": null,
"id": null,
"text": null,
"guid": null,
"containerId": null,
"name": "",
"testName": null,
"childObjects": [],
"objectType": 0,
"sortOrder": 0,
"height": null,
"keywords": null
},
"feedBackText": null,
"questionType": null,
"addToBank": false,
"numberOfAnswersAllow": null,
"displayAnsweras": null,
"id": null,
"text": null,
"guid": null,
"containerId": null,
"name": "",
"testName": null,
"childObjects": [],
"objectType": 0,
"sortOrder": 0,
"height": null
}, {
"id": null,
"questionText": null,
"testStatus": null,
"questionWeight": 10,
"minCharecters": null,
"maxCharecters": null,
"commentObj": {
"watermarkText": null,
"commentText": null,
"textType": null,
"userComment": null,
"isCorrect": false,
"totalCharacters": null
},
"keywords": null,
"userAnswer": {
"essayText": null,
"id": null,
"comments": null,
"questionId": null
},
"feedBackText": null,
"questionType": null,
"addToBank": false,
"numberOfAnswersAllow": null,
"displayAnsweras": "displayAnswers for Test",
"text": null,
"guid": null,
"containerId": null,
"name": "",
"testName": null,
"childObjects": [],
"objectType": 0,
"sortOrder": 0,
"height": null
}
],
"objectType": 0,
"sortOrder": 0,
"height": null,
"keywords": null
}
Question Dto are the child dto of ObjectDto like
class QuestionDto : V2ObjectDto
Note the parent Class attribute will remain same but child class and its attributes will be changed with its question type as I mentioned in above code.
Please help me to sort out this issue or let me know about any other possible solution for it.