如何在JavaScript中将字符串转换为JSON

6

在我的应用程序中,我收到以下类似的响应:

{"success":true,"data":"{\"status\": \"Failed\", \"percentage_completed\": \"0\", \"actions\": \"Error: Insufficient argument: 1\\n\"}","message":"Logs fetched successfully."}

如何将这个转换为 JSON?我尝试了JSON.parse,但似乎不起作用。有没有其他方法可以将这个字符串转换成一个有效的 JSON 格式?


2
该字符串已经是JSON格式。您的意思是要将其解析为JavaScript对象吗? - zcoop98
1
JSON.parse() 有什么问题?你收到了错误信息吗? - zcoop98
这个回答解决了你的问题吗?如何在Typescript中解析JSON字符串 - gurisko
看起来这是一个ajax调用的响应。你需要使用JSON.parse(response.data) - Dipen Shah
2个回答

22

我理解存在的困惑。提供的对象具有一个包含JSON字符串的属性。在这种情况下,“data”属性包含您需要解析的JSON字符串。请查看以下示例。

var result = {"success":true,"data":"{\"status\": \"Failed\", \"percentage_completed\": \"0\", \"actions\": \"Error: Insufficient argument: 1\\n\"}","message":"Logs fetched successfully."};

JSON.parse(result); // should fail
JSON.parse(result["data"]); // should work
JSON.parse(result.data) // or if you prefer this notation

0

试试这个:

let data = {"success":true,"data":"{\"status\": \"Failed\", \"percentage_completed\": \"0\", \"actions\": \"Error: Insufficient argument: 1\\n\"}","message":"Logs fetched successfully."}
data.data = JSON.parse(data.data);
console.log(data);


关于“尝试这个”:需要解释一下。例如,JSON输入是什么类型的?无效的?有效的?相同的?不同的?主要思想是什么?你改变了什么,为什么要这样做?根据帮助中心的说法:“...始终要解释为什么你提出的解决方案是合适的以及它是如何工作的”。请通过编辑(更改)您的答案来回应,而不是在此处进行评论(*** 不要 ***使用“编辑:”,“更新:”或类似的词语 - 答案应该看起来像是今天写的)。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接