es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo cambiar los caracteres turcos y el espacio en los nombres de objetos de datos json? WebApi/Typescript

Estoy usando la función “api fetch data”. Pero el formato de mis datos en json tiene caracteres y espacios en turco. Por eso no pude obtener los datos en una tabla o cualquier cosa similar. Intenté usar la función “replace” o “parse” pero no obtuve resultado.

formato real de json

 {
        "Kod Adı": "USD",
        "Alış Kür": "12.4448"
    },
    {
        "Kod Adı": "AUD",
        "Alış Kür": "8.8412"
    },
    {
        "Kod Adı": "DKK",
        "Alış Kür": "1.8851"
    },
    {
        "Kod Adı": "EUR",
        "Alış Kür": "14.0385"
    },
    {
        "Kod Adı": "GBP",
        "Alış Kür": "16.5046"
    },

formato deseado

 {
        "KodAdi": "USD",
        "AlisKur": "12.4448"
    },
    {
        "KodAdi": "AUD",
        "AlisKur": "8.8412"
    },
    {
        "KodAdi": "DKK",
        "AlisKur": "1.8851"
    },
    {
        "KodAdi": "EUR",
        "AlisKur": "14.0385"
    },
    {
        "KodAdi": "GBP",
        "AlisKur": "16.5046"
    },

Además, estoy obteniendo un error de “CORS policy”.

La solicitud desde el origen ‘http://localhost:4200’ ha sido bloqueada por la política de CORS: No se encuentra el encabezado ‘Access-Control-Allow-Origin’ en el recurso solicitado.

Intenté usar este enlace, sin embargo, no obtuve ningún resultado. 3 Ways to Fix the CORS Error

shared.service.ts

typescript
getAnalizor(): Observable<any[]>{
return this.http.get<any>('http://15.12.1.05/analizorJSON.php')
}
</any[]>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema de los caracteres turcos y los espacios en el formato de datos JSON, puedes usar la función map para transformar los datos al formato deseado. Aquí tienes un ejemplo:

    getAnalizor() : Observable<any[]>{
      return this.http.get<any>('http://15.12.1.05/analizorJSON.php').pipe(
        map(response => {
          return response.map(item => {
            return {
              KodAdi: item['Kod Adı'],
              AlisKur: item['Alış Kür']
            };
          });
        })
      );
    }
    

    Este código transformará cada elemento del array cambiando los nombres de las claves a KodAdi y AlisKur. Luego puedes utilizar los datos transformados en tu datatable u otros componentes.

    En cuanto al error de política de CORS, necesitas habilitar CORS en el lado del servidor añadiendo el encabezado Access-Control-Allow-Origin a la respuesta. Si no tienes acceso al servidor, puedes intentar usar un servidor proxy para evitar la restricción de CORS.

    El enlace que proporcionaste contiene algunos consejos útiles para solucionar el error de CORS, como usar un servidor proxy o añadir los encabezados de CORS a la respuesta utilizando un middleware. Puedes probar estas soluciones y ver si funcionan en tu caso.</any[]>

Comments are closed.