Bonjour à tous, je suis nouveau dans la désérialisation JSON. ce sont les données JSON qui doivent être désérialisées en objets .net afin que je puisse stocker ces valeurs de JSON dans la base de données.

Voici mon code:

var client = newRestClient("https:xxxxxxxxxxxxxxxxxx/pincodes/");
var request = new RestRequest(Method.POST);
request.AddHeader("Postman-Token", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"username\"\r\n\r\xxxxxxxxxxxxxxxx\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"password\"\r\n\r\xxxxxxxxxxxxxxxx\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
string JsonContent = response.Content;

Voici à quoi ressemble le fichier json:

[{"city": "AMBALA", "state": "Haryana", "city_type": "", "active": true, "route": "HR/I1H/ABA", "date_of_discontinuance": "", "state_code": "HR", "pincode": 134003, "city_code": "ABA", "dccode": "ABA"}, 

{"city": "AMBALA", "state": "Haryana", "city_type": "", "active": true, "route": "HR/I1H/ABA", "date_of_discontinuance": "", "state_code": "HR", "pincode": 134002, "city_code": "ABA", "dccode": "ABA"}]

Je veux accéder à des valeurs spécifiques ex. valeur de city, pincodes etc. Comment créer un modèle, j'ai essayé mais j'ai obtenu une erreur: "Erreur CS0825 Le mot-clé contextuel 'var' peut n'apparaître que dans une déclaration de variable locale ou dans le code de script"

1
Abdul 27 janv. 2019 à 11:11

3 réponses

Meilleure réponse

Vous pouvez avoir un modèle de ville, puis désérialiser ce modèle.

 public class CityModel
    {
        public string city { get; set; }
        public string state { get; set; }
        public string city_type { get; set; }
        public bool active { get; set; }
        public string route { get; set; }
        public string date_of_discontinuance { get; set; }
        public string state_code { get; set; }
        public int pincode { get; set; }
        public string city_code { get; set; }
        public string dccode { get; set; }
    }


string JsonResult = @"[{'city': 'AMBALA', state: 'Haryana', 'city_type': '', 'active': true, 'route': 'HR / I1H / ABA', 'date_of_discontinuance': '', 'state_code': 'HR', 'pincode': 134003, 'city_code': 'ABA', 'dccode': 'ABA'},{ 'city': 'AMBALA', 'state': 'Haryana', 'city_type': '', 'active': true, 'route': 'HR/I1H/ABA', 'date_of_discontinuance': '', 'state_code': 'HR', 'pincode': 134002, 'city_code': 'ABA', 'dccode': 'ABA'}]";

var result = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CityModel>>(JsonResult);  

ListOfCity

Sinon, vous pouvez utiliser dynamique mais cela coûte cher.

List<dynamic> result = JsonConvert.DeserializeObject<List<dynamic>>(JsonResult);
var city = result[0].city;
1
Idris 27 janv. 2019 à 11:01

Vous pouvez utiliser Json.Net pour la désérialisation. La première étape serait de définir un modèle pour votre ville.

Par exemple,

public class CityDetail
{
    public string city { get; set; }
    public string state { get; set; }
    public string city_type { get; set; }
    public bool active { get; set; }
    public string route { get; set; }
    public string date_of_discontinuance { get; set; }
    public string state_code { get; set; }
    public int pincode { get; set; }
    public string city_code { get; set; }
    public string dccode { get; set; }
}

Maintenant, vous pouvez utiliser Json.Net pour désérialiser les données comme suit.

var result = JsonConvert.DeserializeObject<List<CityDetail>>(jsonString);

Cela vous donnerait une liste avec vos données

Production entrez la description de l'image ici

2
Anu Viswan 27 janv. 2019 à 08:27

Le meilleur moyen est d'utiliser Json.NET.

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name; // Bad Boys
3
AmirNorouzpour 27 janv. 2019 à 08:15