Así que tengo un código que publica este JSON:
post = { period: "1", data: {1: "Here"} }Y se publica con este código:
$.ajax({ url: 'http://127.0.0.1:5000/', data: post, type: 'POST' }) Cuando ejecuto este código, mi servidor recibe esta cadena: "period=1&data%5B3%5D=Here"
¿Hay alguna forma de volver a convertir esta cadena en un JSON?
JSON.parse() pero eso obviamente no funcionó.
Nunca fue JSON, puede enviarlo como JSON usando JSON.stringify y luego use JSON.parse para recuperarlo como un objeto en el servidor.
$.ajax({ url: 'http://127.0.0.1:5000/', data: JSON.stringify(post), contentType: 'application/json', type: 'POST' })Puede analizar la cadena con el constructor URLSearchParams y luego usar Object.fromEntries para convertirla en un objeto:
const obj = Object.fromEntries(new URLSearchParams("period=1&data%5B3%5D=Here")); console.log(obj)