将数据从带有 json 对象的文件中导入.js到 mysql 数据库


Import data from .js file with json object to mysql database

我有一个javascript文件,其中包含以下格式的数据。

    index = {
  "me" : {
    "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae",
    "firstName" : "A=",
    "lastName" : "T",
    "pictureName" : "66s2c.jpg",
    "username" : "a-t"
  },
  "spaces" : [ {
    "org" : {
      "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae",
      "firstName" : "An",
      "lastName" : "Tuli",
      "pictureName" : "66s2c.jpg",
      "username" : "arli"
    }
  }, {
    "user" : {
      "id" : "60c4a171-172f-4f66-9014-8b4cf3e476e6",
      "firstName" : "Ban",
      "lastName" : "Idris",
      "pictureName" : "../../../../default-pic/butterfly_200.png",
      "username" : "banun-idris"
    }
  } ]
}
users["524bd089-2a7b-4a71-ba23-16354d6351ae"] = {
  "id" : "524bd089-2a7b-4a71-ba23-16354d6351ae",
  "firstName" : "A",
  "lastName" : "T",
  "pictureName" : "66s2c.jpg",
  "username" : "a",
  "libraries" : [ "lEy27AZavfSR", "l0yApAoo2l4b", "lJl22YOtacxY", "l0UhMCvrMmka", "lJMWpIoFnaK4", "lCZ9cYYjVJcv", "l8kynpyoaej7" ]
}
 libraries["lEy27AZavfSR"] = {
  "id" : "lEy27AZavfSR",
  "name" : "My Main Library",
  "description" : null,
  "numKeeps" : 0,
  "keeps" : [ ]
}
keeps["k4r5UIugqgfk"] = {
  "id" : "k4r5UIugqgfk",
  "keptAt" : 1449613295000,
  "lastActivityAt" : 1449613295000,
  "title" : "",
  "url" : "",
  "note" : null,
  "tags" : [ ],
  "libraries" : [ "lJl22YOtacxY" ],
  "summary" : "",
  "messages" : [ ]
}

我需要将数据从这种格式导入我的 mysql 数据库。

我无法最终确定并确定执行此操作的方法

我试图将文件内容放入 php 文件,然后将它们转换为数组字符串,但得到的结果为 null。

$jsondata = file_get_contents('trial_data.js');
$data = json_decode($jsondata, true);
var_dump($data);

我认为我可以采取的第二种方法是在jquery文件中加载数据,并使用AJAX将其发送到PHP文件,然后将其添加到数据库中。

您认为我应该采取哪种方法以及如何去做。

另外,我需要从第一个索引数组中找出 ID,以便我可以从我需要获取其余信息的 me 和 org 对象中获取 ID

由于您的数据不是有效的 JSON,因此您可以使用正则表达式来解析它,如下所示:

$file_content = file_get_contents('trial_data.js');
preg_match_all("/('w+)'['"([^']]*)'"']'s*'='s*'{([^'}]*)'}/", $file_content, $matches);
foreach ($matches[1] as $key => $value) {
    $data[$value][$matches[2][$key]] = json_decode('{'.$matches[3][$key].'}');
}
print_r($data);
//For example:
echo $data['users']['524bd089-2a7b-4a71-ba23-16354d6351ae']->pictureName;
//Output: 66s2c.jpg

演示:https://3v4l.org/fW5gH