如何从序列化数组中获取数据?
请帮我打印控制台的值和字段“昵称”的键。这里是JSON序列化的数据阵列:如何从序列化数组中获取数据?
[
{"fields": {"user_permissions": [], "nickname": "\u0418\u0432\u0430\u043d \u0422\u0443\u0440\u0433\u0435\u043d\u0435\u0432 \u0451\u043f\u0442\u0430", "groups": [], "avatar": "", "gender": 1, "skype": "dfsdf", "other": "zzzz", "phone": "2014-0921"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 4},
{"fields": {"user_permissions": [], "nickname": "\u0410\u043d\u0442\u043e\u043d \u0427\u0435\u0445", "groups": [], "avatar": "", "gender": 2, "skype": "dfsdf", "other": "qqqqqq", "phone": "21"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 5}
]
我想要的结果是这样的:
0: zzzzzz
1: qqqqqq
我怎么能这样做?
如果要打印索引和昵称,考虑及如何使用foreach:
var users = [
{"fields": {"user_permissions": [], "nickname": "\u0418\u0432\u0430\u043d \u0422\u0443\u0440\u0433\u0435\u043d\u0435\u0432 \u0451\u043f\u0442\u0430", "groups": [], "avatar": "", "gender": 1, "skype": "dfsdf", "other": "zzzz", "phone": "2014-0921"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 4},
{"fields": {"user_permissions": [], "nickname": "\u0410\u043d\u0442\u043e\u043d \u0427\u0435\u0445", "groups": [], "avatar": "", "gender": 2, "skype": "dfsdf", "other": "qqqqqq", "phone": "21"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 5}
]
users.forEach(function(users, index) {console.log(index + ': ' + users.fields.nickname);});
会打印:
0: Иван Тургенев ёпта
1: Антон Чех
您是否期望?
你在问题中出现的数组是not serialized。此外username
在给定数组内没有任何对象的字段。
如果你的意思是每个fields
对象中的字段other
,你可以检索使用Array.map
:
var usernames = [
{"fields": {"user_permissions": [], "nickname": "\u0418\u0432\u0430\u043d \u0422\u0443\u0440\u0433\u0435\u043d\u0435\u0432 \u0451\u043f\u0442\u0430", "groups": [], "avatar": "", "gender": 1, "skype": "dfsdf", "other": "zzzz", "phone": "2014-0921"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 4},
{"fields": {"user_permissions": [], "nickname": "\u0410\u043d\u0442\u043e\u043d \u0427\u0435\u0445", "groups": [], "avatar": "", "gender": 2, "skype": "dfsdf", "other": "qqqqqq", "phone": "21"}, "model": "app_accounts.userprofile_deferred_avatar_date_joined_email_fic679ed35161c7ba80f007b4235db5148", "pk": 5}
].map(function (v) { return v.fields.other });
//=> usernames now: ["zzzz", "qqqqqq"]
See also ...
我不明白这一点。首先,您使用的是JS对象,而不是序列化的JSON数据,如问题中所述。但是,您还要抽取每个对象,将其序列化,然后在解压缩它的属性之前解析它。这对我来说没有多大意义。 – 2014-10-11 15:22:16
@squint:你说得对,stringify/parse在这里是无稽之谈。编辑答案。问题标题中的'serialized'一词被误导了。 – KooiInc 2014-10-11 15:29:18
你的json没有字段'“用户名”' – hindmost 2014-10-11 15:08:17
对不起。字段名称“昵称” – dert 2014-10-11 15:16:57
@dert:您需要做的第一件事是将您的JSON解析为JavaScript对象'var parsed = JSON.parse(json_data)'。然后获取结果,并像正常的Array一样迭代它。 'for(var i = 0; i
2014-10-11 15:24:04