Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:Init数组来自字符串_Javascript - Fatal编程技术网

JavaScript:Init数组来自字符串

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

初学者的问题:我正在尝试创建并初始化一个用户数组,使用以下字符串作为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代码有效,然后使用它。您的代码中有一个错误,我在下面的代码中修复了它

  • 使用将其传输到对象

  • 要与所有浏览器兼容,请确保也包含了JSON对象(并非所有浏览器都具有调用JSON.parse函数的JSON对象)

  • 正如Anthony所提到的,结果不是数组而是对象。要遍历用户列表,请参见或下面的示例

  • 示例

    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);
    }