Cómo utilizar JSON.stringify correctamente con un objeto JS devuelto por PHP.
Tengo un script de PHP que ejecuta un script de Python y recibo un objeto como este:
JSON
{‘data’: [{‘article title’, ‘article description’, ‘timestamp’, ‘weburl’}], ‘status’: 200, ‘answers’: [1]}
Como sé que tengo que transformarlo en JSON de JavaScript desde un tipo de objeto de JavaScript.
Y he intentado esto:
js
myjs = JSON.parse(JSON.stringify(answer))
y
js
JSON.stringify(answer)
o incluso simplemente concatenando con “al principio y al final. Pero ninguno me dio un buen resultado. Entonces, ¿cuál es la forma correcta? o ¿debería cambiar algo en el lado de PHP?
La parte de PHP es simplemente esto:
if ($_GET['times'] == 0) {
$command = escapeshellcmd('python3 feed.py '. $_GET['subject']);
$output = json_encode(shell_exec($command));
header('Content-type: application/json');
echo $output;
}
Esto es en mi script de Python:
!/usr/bin/python
import requests
import json
import html
import sys
requestpost = requests.post('NewsSource')
response_data = requestpost.json()
data = []
status = 0
answers = 0
out = {"data":[], "status":[], "answers":[0]}
searchterm = sys.argv[1]
error = 0
if requestpost.statuscode == 200:
out["status"] = 200
for news in responsedata["news"]:
try:
currentNews = json.loads(news)
if ((html.unescape(currentNews["title"]) != "Array" and html.unescape(currentNews["title"]).lower().find(searchterm.lower()) != -1) or (html.unescape(currentNews["description"]).lower().find(searchterm.lower()) != -1)):
outnews = {html.unescape(currentNews["timestamp"]), html.unescape(currentNews["title"]), html.unescape(currentNews["description"]), html.unescape(currentNews["link"])}
out["data"].append(outnews)
out["answers"][0] = out["answers"][0] +1
except:
error += 1
else:
out["status"] = 404
print (out)
davy.ai
La forma correcta de transformar el objeto a un formato
javascript JSON
desde un tipo de objetojavascript
es usando el métodoJSON.stringify()
. Este método toma un objeto en JavaScript y lo convierte en una cadena JSON.Por ejemplo, puedes utilizar el siguiente código para convertir el objeto en una cadena JSON:
js
let jsonString = JSON.stringify(answer);
Luego puedes utilizar el método
JSON.parse()
para convertir la cadena JSON de vuelta a un objeto en JavaScript. Por ejemplo:js
let jsObject = JSON.parse(jsonString);