首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从字符串中提取axios数据?

如何从字符串中提取axios数据?
EN

Stack Overflow用户
提问于 2022-07-19 06:34:06
回答 2查看 81关注 0票数 -1

这是来自服务器的响应数据。

代码语言:javascript
复制
[{"username": "harry"}][{"id": 1, "name": "playlist1", "tag": "genre"}, {"id": 2, "name": "playlist1", "tag": "genre"}, {"id": 3, "name": "playlist3", "tag": "genre"}][{"1": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}, {"2": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af", "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}, {"3": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af", "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}]

有了axios,数据就像上面那样以字符串的形式出现。上面的字符串中有三个数组,我希望分别提取每个数组并将其存储在一个变量中。

它没有转换成JSON。如何获得用户名数据和第二个数组的数据?我试图通过索引访问它,但是由于它是字符串格式,所以它是一个接一个地被访问的。

EN

回答 2

Stack Overflow用户

发布于 2022-07-19 06:54:54

您发布的响应不是字符串。它似乎是三个数组,每个数组包含x个对象。

字符串可以标识,可以用双:“”或单qoutes:‘“括起来。

您可以通过开始和结束方括号来标识数组:。

对象可以通过开始和结束的花括号来标识:{ }。

以下是您的响应的可读性更强的版本。为了便于识别,我给每个顶级数组加上了注释。

代码语言:javascript
复制
// array 1
[
    {"username": "harry"}
]

// array 2
[
    { "id": 1, "name": "playlist1", "tag": "genre" },
    { "id": 2, "name": "playlist1", "tag": "genre" }, 
    { "id": 3, "name": "playlist3", "tag": "genre" }
]

// array 3
[
    { 
        "1": [
            "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", 
            "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"
        ] 
    },
    { 
        "2": [
            "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9",
            "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af",
            "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9",
            "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"
        ] 
    },
    { 
        "3": [
            "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9",
            "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af",
            "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9",
            "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"
        ]
    }
]

第三个数组似乎包含一个对象,其中包含一个列表。就像前面提到的其他人一样,这似乎是错误的数据,我想看看源代码,而不是试图解析它。尽管如此,循环遍历每个列表并提取数据并不是不可能的,但这并不是正确的方法。

票数 0
EN

Stack Overflow用户

发布于 2022-07-19 06:54:55

您应该将响应固定为“确定性性能”和“矛盾性”,但是--如果您不能并且仍然希望从这个字符串响应中提取数据--您可以这样做

代码语言:javascript
复制
const axiosResponse = `[{"username": "harry"}][{"id": 1, "name": "playlist1", "tag": "genre"}, {"id": 2, "name": "playlist1", "tag": "genre"}, {"id": 3, "name": "playlist3", "tag": "genre"}][{"1": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}, {"2": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af", "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}, {"3": ["https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af", "https://i.scdn.co/image/ab67616d0000b273503143a281a3f30268dcd9f9", "https://i.scdn.co/image/ab67616d0000b27369fa55f10c5293bbb985c1af"]}]`;

const result = JSON.stringify(
  JSON.parse('{ "data": [' + axiosResponse.split('][').join('],[') + ']}').data[1]
);

console.log(result);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73032147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档