#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();