Не удается получить список входных данных API и преобразовать его в json и получить его содержимое

#json #asp.net-mvc

#json #asp.net-mvc

Вопрос:

У меня есть API, который в качестве входных данных у меня есть:

 myMedicineJsonList=[{"medicineType":"ketamine","medicineDose":"5 drops","medicineDiode":"IV"},{"medicineType":"adrenaline","medicineDose":"5 drops","medicineDiode":"IV"}]
  

Мне нужно получить его содержимое и сохранить его в таблице в базе данных.

В настоящее время я использую следующий код:

 public partial class medicines
    {
        public int medicine{ get; set; }
        public String medicineType { get; set; }
        public String medicineDosage { get; set; }
        public String medicinePlace { get; set; }
    }

public System.Web.Http.Results.JsonResult<String> Insert_call_info( List<String> medicineList)
        {
            using (EMSMVCEntities entities = new EMSMVCEntities())
            {

                entities.Configuration.ProxyCreationEnabled = false;
              
                try
                {
                    var myMedicineJson = JsonConvert.SerializeObject(medicineList);
                    var myMedicineJsonList = JsonConvert.DeserializeObject<medicines>(myMedicineJson);
                    var medications = myMedicineJsonList.Value<JObject>("Medicine").ToObject<List<medicines>>();
                    var medicationsdb = entities.Set<Call_info_Medicines>();
                    ...
                }
            }
        }
  

Однако в myMedicineJsonList или в medications я не могу получить содержимое medicineList , чтобы сохранить их в таблице.

Таблица, в которой я хочу его сохранить, выглядит следующим образом:

 public partial class Call_info_Medicines
    {
        public int medicine_info_id { get; set; }
        public string medicine { get; set; }
        public string medicineType { get; set; }
        public string medicineDosage { get; set; }
        public string medicinePlace { get; set; }
    }
  

Мне нужно сохранить его, используя следующую строку — предыдущий набор фрагментов кода.

  var medicationsdb = entities.Set<Call_info_Medicines>();
  

Ответ №1:

Я нашел следующее решение:

 public class RootObject
    {
        public List<medicines> Medicine { get; set; }
    }

var medResult = JsonConvert.DeserializeObject<RootObject>(medicineList);
var medicineTypeL = medResult.Medicine.Select(p => p.medicineType).ToList();
var medicineDosageL = medResult.Medicine.Select(p => p.medicineDosage).ToList();
var medicinePlaceL = medResult.Medicine.Select(p => p.medicinePlace).ToList();