代码之家  ›  专栏  ›  技术社区  ›  MTK

jQuery为什么在数组中转换json对象宽度键0

  •  0
  • MTK  · 技术社区  · 5 年前

    一件很奇怪的事使我头痛。

    下面是我的例子:

    菲律宾比索:

    $my_obj1 = ["0" => "something"];
    $my_obj1 = json_encode($my_obj1);
    
    $my_obj2 = ["1" => "something else"];
    $my_obj2 = json_encode($my_obj2);
    

    JS公司:

    var my_obj1 = <?php echo json_encode(json_decode($my_obj1))?>;
    var my_obj2 = <?php echo json_encode(json_decode($my_obj2))?>;
    
    console.log( my_obj1, my_obj2 );
    //show -> ["something"] {1: "something else"}
    
    //espected ->  {"0":"something"} {1: "something else"}
    

    正如我在评论中所说,应该有两个对象。 但它给了我一个数组和一个对象

    我使用jQuery 3.1.0

    1 回复  |  直到 5 年前
        1
  •  2
  •   Nick SamSmith1986    5 年前

    你可以使用 JSON_FORCE_OBJECT 选择 json_encode 要解决此问题:

    $my_obj1 = ["0" => "something"];
    $my_obj1 = json_encode($my_obj1, JSON_FORCE_OBJECT);
    echo $my_obj1;
    

    输出:

    {"0":"something"}
    

    Demo on 3v4l.org