Javascript将对象推入特定索引

时间:2015-06-03 11:26:36

标签: javascript php json object

我正在尝试创建数据的JSON文件,但是当我推送对象时,它会创建另一个元素。

这是运行代码后JSON的外观:

{
 "level": [
   {
     "6": {
       "TitleEng": "Some English Title",
     }
   },
   {
     "7": {
       "TitleEng": "Some English Title",
     }
   }
 ]

}

这就是JSON的外观:

{
 "level": [
   {
     "6": {
       "TitleEng": "Some English Title",
     },
     "7": {
       "TitleEng": "Some English Title",
     }
   }
 ]

}

我使用以下代码创建对象:

$.getJSON( "json/levels.json", function( levels ) {
    obj[lvl] = {
    "TitleEng": titleEng,
    };
    levels.level.push(obj);
    $.post("php/upload_level.php", {json : JSON.stringify(levels)});
});

PHP代码如下:

<?php
$json = $_POST['json'];
    if (json_decode($json) != null) {
     $file = fopen('../json/levels.json','w');
     fwrite($file, $json);
     fclose($file);
   } else {
    echo "error writing file";
   }
?>

为了解决这个问题,我尝试了改变     levels.level.push(OBJ); 至     levels.level [0] .push(OBJ); 为了保持水平对象内的水平,但这不起作用。任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

var obj = {
 "level": [
   {
     "6": {
       "TitleEng": "Some English Title",
     },
     "7": {
       "TitleEng": "Some English Title",
     }
   }
 ]};

向obj添加新的

obj.level[0][8]= {
           "TitleEng": "Some other English Title",
         }

所以obj将是

{
     "level": [
       {
         "6": {
           "TitleEng": "Some English Title",
         },
         "7": {
           "TitleEng": "Some English Title",
         },
         "8" :{
            "TitleEng": "Some other English Title",
         }
       }
     ]}