Converti Json String in C # Object List

Voglio convertire una stringa JSON in una lista di oggetti. Mi aiuti per favore. sarebbe più utile se fatto da NewtonJson .

Ci ho provato, ma non funziona. Non voglio tutti i valori di quel json. solo quali sono menzionati in MatrixModel

Questo è un object

 public class MatrixModel { public string S1 { get; set; } public string S2 { get; set; } public string S3 { get; set; } public string S4 { get; set; } public string S5 { get; set; } public string S6 { get; set; } public string S7 { get; set; } public string S8 { get; set; } public string S9 { get; set; } public string S10 { get; set; } public int ScoreIfNoMatch { get; set; } } 

Questa è la stringa Json

  "[ { "Question": { "QuestionId": 49, "QuestionText": "Whats your name?", "TypeId": 1, "TypeName": "MCQ", "Model": { "options": [ { "text": "Rahul", "selectedMarks": "0" }, { "text": "Pratik", "selectedMarks": "9" }, { "text": "Rohit", "selectedMarks": "0" } ], "maxOptions": 10, "minOptions": 0, "isAnswerRequired": true, "selectedOption": "1", "answerText": "", "isRangeType": false, "from": "", "to": "", "mins": "02", "secs": "04" } }, "CheckType": "", "S1": "", "S2": "", "S3": "", "S4": "", "S5": "", "S6": "", "S7": "", "S8": "", "S9": "Pratik", "S10": "", "ScoreIfNoMatch": "2" }, { "Question": { "QuestionId": 51, "QuestionText": "Are you smart?", "TypeId": 3, "TypeName": "True-False", "Model": { "options": [ { "text": "True", "selectedMarks": "7" }, { "text": "False", "selectedMarks": "0" } ], "maxOptions": 10, "minOptions": 0, "isAnswerRequired": false, "selectedOption": "3", "answerText": "", "isRangeType": false, "from": "", "to": "", "mins": "01", "secs": "04" } }, "CheckType": "", "S1": "", "S2": "", "S3": "", "S4": "", "S5": "", "S6": "", "S7": "True", "S8": "", "S9": "", "S10": "", "ScoreIfNoMatch": "2" } ]" 

Puoi usare json2csharp.com per convertire il tuo json in modello a oggetti

  • Vai a json2csharp.com
  • Passato il tuo JSON nella scatola.
  • Fai clic su Genera.
  • Otterrai il codice C # per il tuo modello di object
  • Deserializzare con var model = JsonConvert.DeserializeObject(json); usando NewtonJson

Qui, genererà qualcosa come questo:

 public class MatrixModel { public class Option { public string text { get; set; } public string selectedMarks { get; set; } } public class Model { public List 

Quindi puoi deserializzare come:

 var model = JsonConvert.DeserializeObject>(json); 
 public static class Helper { public static string AsJsonList(List tt) { return new JavaScriptSerializer().Serialize(tt); } public static string AsJson(T t) { return new JavaScriptSerializer().Serialize(t); } public static List AsObjectList(string tt) { return new JavaScriptSerializer().Deserialize>(tt); } public static T AsObject(string t) { return new JavaScriptSerializer().Deserialize(t); } } 

Prova a cambiare il tipo di ScoreIfNoMatch, in questo modo:

  public class MatrixModel { public string S1 { get; set; } public string S2 { get; set; } public string S3 { get; set; } public string S4 { get; set; } public string S5 { get; set; } public string S6 { get; set; } public string S7 { get; set; } public string S8 { get; set; } public string S9 { get; set; } public string S10 { get; set; } // the type should be string public string ScoreIfNoMatch { get; set; } } 

Le variabili / parametri all’interno della definizione della class richiedono { get; set; } { get; set; } { get; set; } Stavo usando come una dichiarazione di variabile (stupido di me, perché stava funzionando per altri scenari) senza

 { get; set; } 

Per cui, qualunque cosa ho inviato da JavaScript, non è stata ricevuta nel metodo Action. Stava sempre ricevendo un modello vuoto o vuoto.

Una volta il {get; set;} viene aggiunto, ha funzionato come un fascino.

Spero che aiuti qualcuno che proviene dallo stile di programmazione VB6.