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

232
Views
Cómo llamar a la API de Json desde C# usando Javascript

Hice esta aplicación de API web usando ASP.NET y C#

y la respuesta de salida de esta API es un objeto Json Para poder en una aplicación de script java Llame a esta API con Ajax

este es el código C#:

 public string Get() { string Sql3 = "(SELECT top 10 Raspberry_ID, Raspberry_name, Speaker_Name, currently_playing_song,Speaker_Volume,Speaker_Availability, Speaker_Mute,Date_Time,Speaker_Status, Row_Number() over (order by Date_Time desc) as RowNumber FROM Raspi_speaker)T"; string Sql2 = "Speaker_Volume, Speaker_Status, Speaker_Availability, Speaker_Mute, Date_Time, RowNumber FROM"; string Sql = "SELECT top 10 Raspberry_ID, Raspberry_name, Speaker_Name, currently_playing_song," + Sql2 + Sql3; SqlDataAdapter adap = new SqlDataAdapter(Sql, conn); string[] Result = new string[10]; DataTable dataTable = new DataTable(); adap.Fill(dataTable); int i = 0; foreach (DataRow dataR in dataTable.Rows) { string Val; Val = Convert.ToString(dataR["Raspberry_name"]); Result[i] = Val; i++; } Object[] obj = { new { RasspiName = Result} }; if (dataTable.Rows.Count > 0) { return JsonConvert.SerializeObject(obj); } return "No Data Found"; } }

y la salida es este objeto Json:

 [{"RasspiName":["Crea_RASPI SONOS","Crea_RASPI SONOS","Crea_RASPI SONOS","Crea_RASPI SONOS","Trais-Sonos-Pi","Trais-Sonos-Pi","Crea_RASPI SONOS","Crea_RASPI SONOS","Crea_RASPI SONOS","Crea_RASPI SONOS"]}]

El código JavaScript es:

 function Ajax(){ var request = new XMLHttpRequest(); request.onreadystatechange = function(){ if(request.readyState == 4 && (request.status == 200)) { var DataR = []; DataR =JSON.parse(request.responseText) console.log(DataR) } } var url = 'http://localhost:41839/api/Musik'; request.open('GET',url ,true); request.send() }

Mi problema es que trata el objeto Json como texto Aunque utilicé ((JSON.parse)) Método en Java Script... Por ejemplo, cuando escribo ((console.log(DataR[ 0 ])) obtengo solo una letra por ejemplo [ En lugar de Valor cuando escribo ((console.log(DataR[ 0 ].RasspiName)) obtengo Indefinido

No sé si proplem de código C# o de Java Script

espero su ayuda muchas gracias

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No entiendo cómo definiste el método API Get en el ejemplo del código de back-end, pero creo que deberías configurar algo como esto:

 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] public string GetDashboardInfo() { //your code here }

Puede usar Ajax para realizar la solicitud GET:

 function GetData() { try { $.ajax({ type: "GET", contentType: "application/json; charset=utf-8", url: "http://localhost:41839/api/Musik", data: '', dataType: "json", success: OnSuccessGetData, error: OnErrorGetData }); } catch (ex) { console.log("GetData(): " + ex.toString()); } } function OnSuccessGetData(result) { try { if (result.d !== "" && result.d !== null) { var dataSourceJson = JSON.parse(result.d); } else { console.log("OnSuccessGetData: result is null!"); } } catch (ex) { console.log("OnSuccessGetData(): " + ex.toString()); } } function OnErrorGetData(httpRequest, textStatus, errorThrown) { try { console.log("OnErrorGetDashboardData: " + textStatus + " " + errorThrown + " " + httpRequest); } catch (ex) { console.log("OnErrorGetDashboardData(): " + ex.toString()); } }

Más sobre JavaScript Obtener solicitud aquí .

about 4 years ago · Juan Pablo Isaza 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!