javascript - 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 响应对象映射到状态有关,因为没有人在那里回答。
解决方案
您已经有一个对象数组。typeof
该变量正在返回Object
,因为数组是对象。
所以你可以对数组做任何你想做的事情,比如map
,filter
等等。
推荐阅读
- subnet - 谷歌云数据融合子网问题
- oauth - 如何使 Google OAuth 应用程序的后端服务器接收“删除访问”事件或其他事件,例如“帐户禁用”、“令牌撤销”
- python - 如何修复:TypeError: relplot() 在使用 seaborn 绘制线图时获得了参数“x”的多个值
- asp.net-core - EF Core 一对一 - 仅针对一条记录返回结果
- turing-machines - 如何从 alpabet 创建机器
- python - 在拟合 multibomialNB 模型时,“int”和“str”实例之间不支持“<”
- excel - 加权平均反向
- javascript - 将 fetch api 调用存储为局部变量的函数(不是承诺)
- c++ - 与多个 for 循环相关的性能与从 multimap 获取数据的单个 for 循环相关的性能
- javascript - 无法在 Audio.playnxt 读取未定义的属性“NaN”