如何使用JavaScript forloop从JSON中删除最后一个逗号


how can remove last comma from json using javascript forloop

    $('#save').click(function() {
    var loopvalue = "<?php echo $count; ?>"
    var datajson = '[';
    //alert(loopvalue + "length of array")
    for (i = 1; i < loopvalue; i++) {
        var fetchid = '.A' + i;
        var fetchid_code = '.C' + i;
        datajson = datajson + "{" + "maincode :" + $('#company').val() + ",acode : " + $(fetchid_code).text() +
            " , Amount :" + $(fetchid).val() + ", periodfrom :" + $('#dFrom').val() +
            ", periodto : " + $('#dTo').val() + ", danounc : " + $('#dano').val() +
            ", period : " + $('#period').val() + ", fyear : " + $('#fyear').val() +
            ", frequency : " + $('#freq').val() + ", stype : " + $('#stype').val() +
            ", sseq : " + $('#sseq').val() + " }, "
    }
    datajson = datajson + ']'
        //console.log(datajson);
    $.ajax({
        type: 'POST',
        url: 'jsondecode.php',
        data: {
            datajson: JSON.stringify(datajson)
        },
        //data:postArray,
        dataType: "json",
        success: function(data) {
            console.log("success:", data);
        },
        failure: function(errMsg) {
            console.error("error:", errMsg);
        }
    });
});

首先,我删除了json对象中的最后一个逗号,其次当我调用ajax页面时,但它jsonencode.php页面中显示 NULL 值 我该如何解决这个问题,任何人都可以建议我这是我的服务器站点脚本

 <?php
     header('Content-Type: application/json');    
    $data = json_decode($_POST["datajson"]);
// will echo the JSON.stringified - string:
echo $_POST["datajson"];
// will echo the json_decode'd object
var_dump($data);
//traversing the whole object and accessing properties:
foreach ($data as $Object) {
    echo "maincode: " . $Object->maincode . ", Acode: " . $Object->acode . "<br/>";
}
?>

或者也许你应该使用实际对象而不是字符串连接

试试这个

var datajson = [];
for (i = 1; i < loopvalue ; i++) 
{
    var fetchid = '.A' + i;
    var fetchid_code = '.C' + i;
    var obj = {
        maincode : $('#company').val(),
        acode   : $(fetchid_code).text(),
        Amount  : $(fetchid).val(),
        periodfrom : $('#dFrom').val(),
        periodto   : $('#dTo').val(),
        danounc    : $('#dano').val(),
        period    : $('#period').val(),
        fyear    : $('#fyear').val(),
        frequency    : $('#freq').val(),
        stype    : $('#stype').val(),
        sseq    : $('#sseq').val()
    }
    datajson.push( obj );
}
datajson = JSON.stringify( datajson ); //converting to string here

在将]追加到datajson之前,substring该值以删除最后的,。那是。

datajson = datajson.toString().subString(0, datajson.toString().length - 1);

然后附加]

不需要在$.ajax的属性中使用JSON.stringify(datajson) data因为您要发送 json 字符串。 不是 JSON 对象。

希望这有帮助

将外观的单个元素写入数组,然后连接这些元素。

看这里: javascript join

但是当然,自己构建JSON是没有必要的。为此,请使用 JSON.stringify。