Estoy usando VS2022 con C# y estoy tratando de usar un método $ajax get en mi función de JavaScript. Estoy enviando un parámetro y devolviendo una lista de cadenas [] pero cuando recibo el retorno uso JSON.stringify pero cuando intento usar JSON.Parse falla. El código Javascript es
$.ajax({ type: "GET", url: '/Home/GetCategories/', contentType: 'application/json', datatype: 'json', data: { ctgData: JSON.stringify(relvalue)} }).done(function(result) { let userObj = JSON.stringify(result); let resultList = JSON.parse(userObj); });
El código en el controlador que devuelve la lista es simple en este momento hasta que la devolución funcione.
[HttpGet] public ActionResult GetCategories(string ctgData) { string[] categoryList = { "Food & Drink", "Sport & Fitness", "Education", "Housework", "Fiction", "Horror Books", "Fantasy", "Magic" }; return Json(new { data = categoryList }); }
El valor en resultado es
{"data":["Food & Drink","Sport & Fitness","Education","Housework","Fiction","Horror Books","Fantasy","Magic"]}
He intentado varias formas diferentes en Parse, pero siempre falla, ¿puede decirme qué me falta para que mi lista de resultados contenga la matriz de cadenas?
No es necesario analizar nada. Ya es un objeto de script java
$.ajax({ type: "GET", url: '/Home/GetCategories/', contentType: 'application/json', datatype: 'json', data: { ctgData: JSON.stringify(relvalue)} sucess: function(result) { let data=result.data; // data = ["Food & Drink","Sport & Fitness",..] } });
utilizar este:
JSON.parse(JSON.stringify(data))
const data = {"data":["Food & Drink","Sport & Fitness","Education","Housework","Fiction","Horror Books","Fantasy","Magic"]} const resultJSON = JSON.parse(JSON.stringify(data)) console.log("json >>>", resultJSON)