首页 > 解决方案 > reactjs中如何将字符串转换为数组?

问题描述

我有一个 JSON 对象,如果没有 Uncaught SyntaxError: Unexpected token o in JSON at position 1.

所以我用它做了一个字符串 var array = JSON.stringify(this.props.user);

现在该字符串具有我需要遍历它/使用映射函数的格式, 但它是一个字符串。如何将此字符串放入有效数组中以便能够循环遍历它?

我所拥有的 JSON 对象(从 Chrome 复制,typeof(..) 返回对象):

0:
avatar: "/media/dog_default_l.png"
birthday: "2020-09-14"
user_settings: ["P26"]
name: "Huso"
gesellig: true
verspielt: true
__proto__: Object
1:
avatar: "/media/dog_default_l.png"
birthday: "2012-04-24"
user_settings: (2) ["A9", "B5"]
name: "Medo"
gesellig: true
verspielt: false
__proto__: Object
length: 2
__proto__: Array(0)

此对象作为字符串(从 console.log 复制):

[{"name":"Huso","birthday":"2020-09-14","gesellig":true,"verspielt":true,"avatar":"/media/dog_default_l.png","user_settings":["P26"]},{"name":"Medo","birthday":"2012-04-24","gesellig":true,"verspielt":false,"avatar":"/media/dog_default_l.png","user_settings":["A9","B5"]}]

我需要的是一个数组(能够循环):

users: [
        { avatar: '/media/dog_default_l.png',
          birthday: '2020-09-14',
          name: 'Huso',
          gesellig: true,
          verspielt: true,
          user_settings: [
            {settings: 'P26'},
          ],
        },
        { avatar: '/media/dog_default_l.png',
          birthday: '2012-04-24',
          name: 'Medo',
          gesellig: true,
          verspielt: false,
          user_settings: [
            {settings: 'A9'},
            {settings: 'B5'},
          ],
        },
      ],

JSON 对象上的 Object.entries、Object.keys 等返回或 {} 或什么都没有。我不知道是否有办法让这个对象循环? 我真的被困住了,希望有人有一个可行的解决方案。 这个问题与如何将带有嵌套数组的 JSON 响应对象映射到状态有关,因为没有人在那里回答。

标签: javascriptarraysjsonreactjs

解决方案


您已经有一个对象数组。typeof该变量正在返回Object,因为数组是对象。

所以你可以对数组做任何你想做的事情,比如map,filter等等。


推荐阅读