JavaScript-将无效对象转换为json对象
我目前正在进行一个ajax调用,以从API返回数据。返回值是数组的对象。此格式是无效对象,因此我在访问返回给我的数据时遇到问题 如何将此对象转换为有效的json对象,以便访问返回的数据 以下是返回的数据示例:JavaScript-将无效对象转换为json对象,javascript,json,ajax,object,Javascript,Json,Ajax,Object,我目前正在进行一个ajax调用,以从API返回数据。返回值是数组的对象。此格式是无效对象,因此我在访问返回给我的数据时遇到问题 如何将此对象转换为有效的json对象,以便访问返回的数据 以下是返回的数据示例: data = { ["<p>Retail Websites has a profit value of $243,291. In the year 2020 we have seen a growth rate of about 2.3% </p>" ] } 我无
data = { ["<p>Retail Websites has a profit value of $243,291. In the year 2020 we have seen a growth rate of about 2.3% </p>" ] }
我无法访问此对象中的数据。我希望能够像json对象一样访问数据,例如:data[0]
。我被困在如何做到这一点 如果您的数据设置为:
var data={[“零售网站的利润值为243291美元。在2020年,我们看到了大约2.3%的增长率”]}
那么问题是没有键的花括号。删除它们时,阵列是正确的<代码>数据[0]等于所需的字符串
如果API调用的结果是整个
data={…}
,并且您知道它是,那么您可以捕获字符串,删除开头和结尾不属于的字符(方括号之外的所有字符),并使用JSON.parse
获取JSON数据。有几种方法可以删除字符。如果文本总是这样,您可以使用子字符串,或者如果您需要更灵活,您可以使用正则表达式。为什么API使用无效语法响应?我很欣赏详细的响应。我是新的编码,所以我道歉,如果我的问题似乎多余。就像你提到的,我的问题是我没有钥匙。我只想要数组,但目前我被花括号卡住了。就像你提到的,我可以去掉大括号,然后使用JSON.parse
。像data.replace(/[{}]/g',)
这样的方法可以去除卷发吗?在我得到替换的那一刻,它不是一个函数。如果字符串在数据中,并且可以预料到,大括号是第一个和最后一个字符,那么可以这样做来删除它们:data.substring(1,data.length-1)
。这将返回字符串data
减去第一个和最后一个字符。谢谢您的示例。我尝试使用数据。如上所述,子字符串
,但我继续得到子字符串不是函数
我尝试自己寻找解决方案,它指出子字符串只对字符串有效,因为我的字符串在对象中,子字符串还会应用吗?或者是我自己做错了什么。我试过做.done(function(data){data.substring(1,data.length-1)
我刚注意到你的回答。对不起,这可能太晚了,但是substring
是所有字符串的属性。在某种程度上,它是“内部”的字符串,或者确切地说,它是您可以发送给任何字符串的消息。如果另一个对象包含字符串,它将在对象的字符串部分工作。例如在:o={a:1,b:[2,“w”]}
,substring
将位于o.b[1]
中,您可以调用o.b[1]。substring()你不能轻易地在字符串中间调用函数。你可以用字符串插值(查找它)来做类似的事情,但我不认为这是你需要的。
$.ajax({
type: "POST",
url: dataUrl,
data: {
"retailId": retailId,
},
dataType: "json",
async: true,
error: function () {
console.log("error")
}
}).done(function (data) {
console.log("retail data", data)
})
var data = { ["<p>Retail Websites has a profit value of $243,291. In the year 2020 we have seen a growth rate of about 2.3% </p>" ] }