我正在尝试创建数据的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); 为了保持水平对象内的水平,但这不起作用。任何帮助将不胜感激。感谢
答案 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",
}
}
]}