Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
Conversión de una variable dinámica a List<model> o matriz

Quiero enviar este Array con Ajax a api:

 var receipt = Array(); receipt = [ { 'Service': 'Saab', 'Order': '20' }, { 'Service': 'Volvo', 'Order': '12' }, { 'Service': 'BMW', 'Order': '25' } ];

Y este es mi cuerpo Ajax:

 var r = JSON.stringify(receipt); $.ajax({ type: "POST", dataType: "Json", contentType: "application/json; charset=utf-8", data: r, url: "api/Receipt", success: function (result) { // To Do console.info(result); }, error: function (result) { console.info(result); } });

Y esto es lo que obtengo como Json:

 {[ { "Service": "Saab", "Order": "20" }, { "Service": "Volvo", "Order": "12" }, { "Service": "BMW", "Order": "25" } ]}

Y los atrapo en el lado api Así:

 [Route("api/Receipt")] [WebMethod] public string Receipt_Turn(object obj) { dynamic dyn = JsonConvert.DeserializeObject(obj.ToString()); if (dyn != null) { return dyn[1].ToString(); } else { return "false"; } }

Y funciona, la parte return dyn[1].ToString() devuelve el segundo registro de mi Array. Pero quiero convertir esta variable dinámica en una lista o matriz de un modelo.

Aquí está mi modelo:

 [Serializable()] public class Receipt { public string Service { get; set; } public string Order { get; set; } }

Quiero actuar con él así:

 string serv = receipt[1].Service;

Cómo puedo hacerlo ?

Gracias...

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Elimine la parte de matriz en su secuencia de comandos JS y escríbala así:

 var receipt = [ { 'Service': 'Saab', 'Order': '20' }, { 'Service': 'Volvo', 'Order': '12' }, { 'Service': 'BMW', 'Order': '25' } ];

en esta forma estás enviando un Objeto. en su código, supongo que está enviando un JArray , por lo que generará algunos problemas al convertir de JArray a otro tipo.

en su lado API, edite su código como se muestra a continuación:

 public string Receipt_Turn(object r) { //important Line Here List<Receipt> rr = JsonConvert.DeserializeObject<List<Receipt>>(r.ToString()); if (rr != null) { return rr[1].ToString(); } else { return "false"; } }

como puede ver, lo obtenemos como un objeto y luego podremos preparar su parte DeserializeObject como mencioné.

la mayoría declara una lista de su modelo, y después de la parte DeserializeObject agrega el tipo al que desea convertirlo.

aquí Debido a que declaramos List<Receipt> , debemos convertir nuestro DeserializeObject a él, por lo que agregamos <List<Receipt>> después de DeserializeObject .

y finalmente puedes usarlo como quieras.

 string serv = rr[1].Service;
over 4 years ago · Santiago Trujillo Report

0

Suponiendo que está utilizando .NET Core, debería poder vincularlo automáticamente si hace algo como esto:

 ``` [Route("api/Receipt")] [WebMethod] public string Receipt_Turn(List<Receipt> receipts) { if (receipts != null) { return "seomthing"; } else { return "false"; } } ```
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!