Javascript 将对象插入特定索引

标签 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";
   }
?>

为了解决该问题,我尝试更改 level.level.push(obj); 到 level.level[0].push(obj); 为了将级别保持在级别对象内,但这不起作用。任何帮助将不胜感激。谢谢

最佳答案

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",
         }
       }
     ]}

关于Javascript 将对象插入特定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30618774/

相关文章:

javascript - 如何在 PlyrJS 中添加两个视频

php - 如何在 Apache-XAMPP 中禁用 Apache 缓存?

java - XML 到 JSON 转换问题

json - 从 XML 到 JSON 的转换

javascript - 单击时分配一个值

javascript - C3.js - 堆积条形图 - 我可以使值包含而不是相互堆叠吗?

javascript - 返回 promise 在 TypeScript 中给出 "Supplied parameters do not match"

php - 如何使用数据库中的数据自动填充文本框?

php - 如何使用 unlink 功能在 joomla 更新和删除过程中删除文件?并使用取消链接获取要删除的已上传图像?

json - 不明白如何将 JSON.NET 与 ASP.NET Core WebAPI 一起使用