【问题标题】:parsing a multiple json objects and store it in database解析多个json对象并将其存储在数据库中
【发布时间】:2015-12-19 05:55:18
【问题描述】:

我需要从 JSON 文件中解析这多个 JSON 对象。 JSON 文件包含数千个 JSON 对象,我现在需要解析所有这些 JSON 对象,所以请任何人尝试解决这个问题,然后我需要将所有 JSON 数据存储到 MySQL。

{
  {
    "name": "Michael Bruce",
    "gender": "Male",
    "designation": "System Architect"
  },
  {
    "name": "Jennifer Winters",
    "gender": "Female",
    "designation": "Senior Programmer"
  },
  {
    "name": "Donna Fox",
    "gender": "Female",
    "designation": "Office Manager"
  },
  {
    "name": "Howard Hatfield",
    "gender": "Male",
    "designation": "Customer Support"
  }
}

{
  {
    "name": "aMichael Bruce",
    "gender": "Male",
    "designation": "System Architect"
  },
  {
    "name": "Jennifer Winters",
    "gender": "Female",
    "designation": "Senior Programmer"
  },
  {
    "name": "Donna Fox",
    "gender": "Female",
    "designation": "Office Manager"
  },
  {
    "name": "Howard Hatfield",
    "gender": "Male",
    "designation": "Customer Support"
  }
}

{
  {
    "name": "Michael Bruce",
    "gender": "Male",
    "designation": "System Architect"
  },
  {
    "name": "Jennifer Winters",
    "gender": "Female",
    "designation": "Senior Programmer"
  },
  {
    "name": "Donna Fox",
    "gender": "Female",
    "designation": "Office Manager"
  },
  {
    "name": "Howard Hatfield",
    "gender": "Male",
    "designation": "Customer Support"
  }
}

还有我的代码。

<?php

$host     = "localhost";
$username = "root";
$password = "";
$dbname   = "employee";
$con = mysqli_connect($host, $username, $password, $dbname) or die('Error in Connecting: ' . mysqli_error($con));

$st = mysqli_prepare($con, 'INSERT INTO emp(name, gender, designation) VALUES (?, ?, ?)');

mysqli_stmt_bind_param($st, 'sss', $name, $gender, $designation);

$filename = 'file3.json';
$json     = file_get_contents($filename);
$data = json_decode($json, true);

foreach ($data as $key => $value) {
    if (!is_array($value)) {
        echo $key . '=>' . $value . '<br/>';
    } else {
        foreach ($value as $key => $val) {

            $name        = $key['name'];
            $gender      = $key['gender'];
            $designation = $key['designation'];
            echo $name;
            mysqli_stmt_execute($st);
        }
    }
}

mysqli_close($con);
?>

上述代码仅适用于一个 JSON 对象,假设我的文件中有多个 JSON 对象,然后它会抛出类似的错误。

警告:为 foreach() 提供的参数无效 C:\xampp\htdocs\jumadi\b\c\index2.php 在第 25 行

【问题讨论】:

  • 你能编辑 Jason 文件吗?

标签: php mysql json


【解决方案1】:

首先json是错误的。外括号必须是方括号,因为这应该是数组。

其次,检索代码从 key 而不是 val 中读取。应该是:

 $name = $val['name'];
  ... etc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2014-06-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多