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

150
Views
La matriz de objetos JSON devuelve indefinido

Tengo los siguientes scripts en Google Apps Script que admitirán un evento JSON. Quiero los datos en el elemento "eventos", pero siempre me devuelven "Indefinido".

Supongo que tal vez sea porque events es una matriz JSON y no puedo usarla directamente en JS.

Aquí está mi código:

 function doPost(e) { var msg = JSON.parse(JSON.stringify(e.postData.contents)); console.log(msg); //log succesfully console.log(msg.events); //"Undefined" }

Si trato de registrar los elementos en los eventos en lugar de los eventos de la matriz en sí:

 console.log(msg.events[0].replyToken); //"TypeError: Cannot read property '0' of undefined at doPost(app:26:25)"

El resultado de msg will está a continuación:

 { "destination": "U656de3c6b48c8e0d44edda4fd3f05e06", "events": [ { "type": "message", "message": { "type": "text", "id": "*********", "text": "Hi" }, "timestamp": 1642616050062, "source": { "type": "group", "groupId": "***********", "userId": "*************" }, "replyToken": "************", "mode": "active" } ] }

He visto varios problemas similares para matrices en JS. Los probé pero ninguno funcionó, por favor ayúdenme.

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

0

Supongo que el resultado que obtiene de su API como e.postData.contents es una cadena JSON.

En este caso algo como esto:

 var msg = JSON.parse(JSON.stringify(e.postData.contents));

primero intentaría convertir algo en una cadena JSON ( JSON.stringify ) y luego convertirlo en un objeto JavaScript mediante JSON.parse . En otras palabras, JSON.stringify es inútil.

Prueba esto en su lugar:

 var msg = JSON.parse(e.postData.contents);
about 4 years ago · Juan Pablo Isaza Report

0

Si el valor de "e.postData.contents" ya es una cadena, no tiene que hacer JSON.stringify. Si hace JSON.parse (JSON.stringify (cualquier cadena), se agrega una barra invertida" a los valores. Por ejemplo

 let str = '{name: "John"}'; let myJSON = JSON.stringify(str);

miJSON = "{nombre: "Juan"}"

Por lo tanto, asegúrese de que "e.postData.contents" no sea una cadena.

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!