【问题标题】:How make array Json javascript如何制作数组Json javascript
【发布时间】:2023-04-10 05:11:01
【问题描述】:

您好,我的下一个代码有问题:

javascript

var cadena="[";


    $('.box').each(function(){

            var clase=$(this).attr("class");          
            var id_t=$(this).attr("id");

            if(clase=="box todo"){
               var status_t="todo";
                //alert('hola');
            }
            if(clase=="box inprocess"){
                var status_t="inprocess";
                //alert('hola');
            }
            if(clase=="box testing"){
                var status_t="testing";
                //alert('hola');
            }
            if(clase=="box done"){
                var status_t="done";
                //alert('hola');
            }

            //alert('tarea es: '+id_t+ ' con clase '+status_t);

            var objeto={};
            objeto["id"]=id_t;
            objeto["status"]=status_t;


            var json = JSON.stringify(objeto);

            //alert(json);
            cadena=cadena+json;

    });



    cadena= cadena+"]";
 alert('cadena Json '+cadena);

我得到了这个链Json,但是这个链是错误的,因为它需要用(,)分开 我不知道这样做

[
{"id":"1","status":"1"}
{"id":"2","status":"2"}
{"id":"3","status":"1"}
]

我需要一个有效的链Json,我想要类似的东西

[
{"id":"1","status":"1"},
{"id":"2","status":"2"},
{"id":"3","status":"1"}
]

任何想法让我得到这个结果 我将不胜感激。 谢谢!!!

【问题讨论】:

    标签: javascript jquery arrays json each


    【解决方案1】:

    你做错了。而不是下面的行,

    var cadena = "["
    

    试试

     //to init array 
      var cadena = []; 
    

    而且,而不是这一行,

    cadena = cadena+json;
    

    试试这个

    cadena.push(json);
    

    并且删除这一行:

    cadena= cadena + "]";
    

    有关更多信息,请参阅此问题:How to append something to an array?

    您可以将代码简化为:

     $('.box').each(function () {
    
         //taking out the second element of the class and assigning it directly to status_t variable
         var status_t = $(this).attr("class").split(" ")[1];
         var id_t = $(this).attr("id");
    
         var objeto = { "id" : id_t, "status" : status_t};
    
         cadena.push(json);
     });
    

    【讨论】:

      【解决方案2】:

      我想我会这样做:

      var cadena = $('.box').map( function( e ) {
          var $e = $(e);
          return {
              id: $e.attr('id'),
              status: $e.attr('class').replace( /^box /, '' )
          }
      });
      
      var json = JSON.stringify( cadena );
      console.log( json );
      

      我没有办法测试它,但除非我错过了什么,否则它应该可以工作。如果您发布一些示例 HTML,我可以确保它是正确的。

      【讨论】:

        猜你喜欢
        • 2022-07-08
        • 1970-01-01
        • 2020-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 2014-04-12
        相关资源
        最近更新 更多