dongmangwei3822 2016-10-25 17:07
浏览 102
已采纳

PHP和JSON - 结果中的额外逗号

I'm trying to return json response in the correct format but I am getting an extra 'comma' in the returned code (comma after the last item 'Pencil'):

{
        "results": [{
            "ItemID": 1,
            "ItemName": "Ball"
        }, {
            "ItemID": 2,
            "ItemName": "Pen"
        }, {
            "ItemID": 3,
            "ItemName": "Pencil"
        },
       }]
    }

I tried different things but I can't get rid of it. Would anybody have any idea how to remove it?

The code that i have is this:

 <?php 

 print '{"results":[';
 for ($i=0; $i <$numrows; $i++) {
    $stmt->fetch();

  $JSONArray = array(
        "ItemID" => $ItemID,
        "ItemName" => $ItemName
    );
    print ",";

print json_encode($JSONArray);


 }

 print "]}"

    ?>
  • 写回答

2条回答 默认 最新

  • dou5454954610 2016-10-25 17:09
    关注

    You're doing it ENTIRELY wrong. You're outputting multiple independent JSON strings, which is outright wrong. JSON is a monolithic "structure", and building it piece-wise is highly risky.

    Simple: DOn't do that.

    You build a standard PHP array, then do ONE SINGLE encoding when you're completely done building:

    $arr = array();
    
    for(...) {
        $arr[] = ... add stuff ..
    }
    
    echo json_encode($arr);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?