从字符串中初始化数组
JavaScript: Init Array from string
一个初学者的问题:我试图创建和初始化使用以下字符串作为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", "date": "12'/1'/2013 6:23:54 PM"}], "name": "Anna"} }
一般来说是可能的(怎么可能?)还是我完全搞错了?
您的JSON无效。它包含一个语法错误(可能是问题中的拼写错误)—在第一个用户的date
之后有一个无效的逗号,并且它也是一个未包含在数组语法[]
中的对象列表。
正确的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);
}
一般来说,您使用ajax调用获得该字符串,对吧?
你可以使用JSON.parse(strtobecconverdered)将字符串转换为javascript对象
在所有现代浏览器中。
如果没有这样的内置JSON对象怎么办?按照下面所说的做,
1. 导入由Douglas Crockford创建的从本网站下载的JS,
2. 使用JSON。解析你的业务
-
确保JSON代码是有效的,使用JSONLint。你的代码中有一个错误,我在下面的代码中修复了它。
-
使用JSON.parse()将其传输到对象
-
要与所有浏览器兼容,请确保包含json2(并非所有浏览器都有调用JSON的JSON对象)。解析函数)。
-
正如Anthony提到的,结果不是一个数组,而是一个对象。要遍历用户列表,请参见jsfiddle或下面的示例。
var str = "[{user:...";
var userList = JSON.parse(str);
for(var i in userList){
var user = userList[i].user;
document.write(user.name + "<br/>");
}
纠正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'"
}
}
]
相关文章:
- jQuery Ajax数组序列化错误
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- 使用变量初始化数组:意外的令牌 +
- 初始化包含数组的javascript对象
- 具有未初始化数组的forEach
- 如何使 Javascript 数组全局化
- JavaScript 数组序列化
- 用数组初始化对象,Javascript
- 句子“每次计算数组初始值设定项时都会计算数组初始值设定项中的元素表达式”是什么意思
- Javascript多维数组初始化
- Javascript 数组初始化行为
- Javascript二维数组初始化
- 用于php的Javascript数组序列化函数
- ajax调用中错误的javascript数组序列化
- Javascript:不能用函数数组初始化对象属性
- 修复javascript数组初始化
- 数组初始化问题
- Javascript:多个数组初始化
- 使用多维数组字符串化给出空结果
- Javascript对象数组初始化器格式