JSON-файл в datatable(ы)
Привет Эксперты,
Я знаю, что это может быть задано много раз раньше, и у меня есть много решений, но ни одно из них не работает для меня. У меня есть JSON-файл, который нужно преобразовать в datatable(s).
Я пытался использовать JsonConvert.DeserializeObject & lt;class> (JSONFILE)
Также пробовать JsonConvert.DeserializeAnonymousType
и попытался преобразовать в объект / массив
все вышеперечисленные методы возвращают ошибки. Пожалуйста, смотрите ниже файл JSON и код, который я пробовал.
Заранее спасибо!!
Самира
Что я уже пробовал:
JSON-файл
{ "vehicle-make": { "id": "kia", "name": "Kia", "path": "p" }, "vehicle-year": { "id": "2016-std-key", "name": "2016 Std. Key", "path": "p1" }, "vehicle-model": { "id": "rio", "name": "Rio", "path": "p2" }, "product": { "id": "orbit000a", "name": "ORBIT000A", "path": "/v1/catalog/orbit000a", "description": "description", "category": "kit" }, "coverage": { "t-harness-support": false, "\"track-pack\"-gauges": false, "2-way-serial-data-communication": false, "3xlock-start-from-oem-remote": false, "3xlock-start-w-aftermarket-starter": false }, "accessories": [] }
Различные способы преобразования JSON в DT
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.Headers.Add(headerKey, headerVal); httpWebRequest.Method = WebRequestMethods.Http.Get; httpWebRequest.Accept = "application/json; charset=utf-8"; string JSONfile; var response = (HttpWebResponse)httpWebRequest.GetResponse(); using (var sr = new StreamReader(response.GetResponseStream())) { JSONfile = sr.ReadToEnd(); } JSONfile = JSONfile.Replace("vehicle-make", "vehiclemake"); JSONfile = JSONfile.Replace("vehicle-year", "vehicleyear"); JSONfile = JSONfile.Replace("vehicle-model", "vehiclemodel"); //****method(1)**** error unexpected end of data var obj = JObject.Parse(JSONfile); var array = new JArray(obj["vehiclemake"].Values()); var dt = array.ToObject<DataTable>(); //**** method(2) return null object clsMakes make = JsonConvert.DeserializeObject<clsMakes>(JSONfile); //also tried with list //Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[ApiConnect.clsMakes]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly var make = JsonConvert.DeserializeObject<List<clsMakes>>(JSONfile); //class clsMakes class clsMakes { public string id {get;set;} public string name { get; set; } public string path { get; set; } } //method(3) //Unexpected JSON token when reading DataTable. Expected StartArray, got StartObject. Path 'vehiclemake' var makeTB = JsonConvert.DeserializeAnonymousType(JSONfile, new { vehiclemake = default(DataTable) }).vehiclemake;
j snooze
Вы пытаетесь получить только марку автомобиля из этого, или вам нужен каждый отдельный объект(год автомобиля, модель, продукт и т. д.)?
Samira Radwan
Я недд весь объект, используя марку автомобиля в качестве примера