JavaScript:Init数组来自字符串
初学者的问题:我正在尝试创建并初始化一个用户数组,使用以下字符串作为JavaScript中的初始数据:JavaScript:Init数组来自字符串,javascript,Javascript,初学者的问题:我正在尝试创建并初始化一个用户数组,使用以下字符串作为JavaScript中的初始数据: { "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM", }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me", "da
{ "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM", }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me", "date": "12\/1\/2013 6:23:54 PM"}], "name": "Anna"} }
总的来说是可能的(怎么可能的?),还是我完全弄错了
var str = "[{user:...";
var userList = JSON.parse(str);
for(var i in userList){
var user = userList[i].user;
document.write(user.name + "<br/>");
}
您的JSON无效。它包含一个语法错误(可能是问题中的输入错误)——第一个用户的
日期之后的无效逗号,它也是一个未包含数组语法[]
的对象列表
更正的json和解析示例如下:
var json = '[{ "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM" }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me", "date": "12\/1\/2013 6:23:54 PM"}], "name": "Anna"} }]';
// ^ the list of objects need to be enclosed with []
var users = JSON.parse(json);
for(var i=0; i<users.length; i++)
{
console.log(users[i].user.name);
}
var json='[{“用户”:[{“备注”:[{“文本”:“您好”,“日期”:“12\/1\/2013 5:01:36 AM”},“姓名”:“Alex”},{“用户”:{“备注”:[{“文本”:“您好”,“日期”:“12\/1\/2013 5:15:19 PM”},{“文本”:“是我”,“日期”:“12\/1\/2013 6:23:54 PM”},““姓名”:“安娜”};
//^对象列表需要用[]括起来
var users=JSON.parse(JSON);
对于(var i=0;i一般来说,您使用ajax调用获得该字符串,对吗?
您可以使用JSON.parse(strToBeConverted)将该字符串转换为javascript对象
在所有现代浏览器中。
如果没有这样的内置JSON对象呢?按照下面的说明执行,
1.导入由Douglas Crockford创建的下载JS,
2.使用JSON.parse处理您的业务。值得注意的是,在提供的JSON中,user
不是数组,它只是一个对象。为什么会两次被否决?有什么错吗?应该有一条规则,没有注释就不能被否决。。。
var json = '[{ "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM" }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me", "date": "12\/1\/2013 6:23:54 PM"}], "name": "Anna"} }]';
// ^ the list of objects need to be enclosed with []
var users = JSON.parse(json);
for(var i=0; i<users.length; i++)
{
console.log(users[i].user.name);
}