Click here to Skip to main content
15,935,248 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi guys!
now, I'm parsing a json file. I have a json file below:
"id": 1,
"question": "question1?",
"answer": 2,
"answer_arr": ["ans1","ans2","ans3"]

I buil a class:
public class Question
       private int id;

       public int Id
           get { return id; }
           set { id = value; }
       private string quest;

       public string Quest
           get { return quest; }
           set { quest = value; }
       private int answer;

       public int Answer
           get { return answer; }
           set { answer = value; }
       private List<string> answer_arr;

       public List<string> Answer_arr
           get { return answer_arr; }
           set { answer_arr = value; }

I read file below:
var resource = System.Windows.Application.GetResourceStream(new Uri(@"/LuatGiaoThong;component/Data/LuatGT_JSON.txt", UriKind.Relative));
            Stream fs = resource.Stream;
            StreamReader rd = new StreamReader(fs);
            var dict = (JObject)JsonConvert.DeserializeObject(rd.ReadToEnd());

            foreach (var obj in dict["questions"])
                Question ques = new Question()
                    Id = int.Parse(obj["id"].ToString()),
                    Quest = obj["question"].ToString(),
                    Answer_arr = new List<string>(),
                    Answer = int.Parse(obj["answer"].ToString())
                JObject answers = (JObject)JsonConvert.DeserializeObject(obj["answer_arr"].ToString());

I dont know how to read "answer_ar" into array?
Anyone can help me? Thanks for your time

Did you try the class System.Runtime.Serialization.Json.DataContractJsonSerializer:[^]?

This is a very powerful approach very good for maintainability of the project as it is agnostic to data model and abstracts out JSON, so you don't have to work with JSON by yourself. Essentially, you just define a data model and mark parts of contract with appropriate .NET attributes. This is explained here:[^].

Share this answer
Try something like
JArray answers  = (JArray)JsonConvert.DeserializeObject("answer_arr");
foreach (var item in answers )
    foreach(var subitem in item["Answers"])
        //Process subitem
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900