我是一个试图在世界上找到我的方式的新手程序员。我已经掌握了我试图解析出来的SQL语句来填充多个数据库表的JSON数据。我想遍历数组的每个维度并抽出它的特定部分来创建一个我可以传递给MySQL的INSERT语句。我不确定这是用一个JSON文件中的数据填充单独表格的最佳方式,但这是我能想到的唯一方法。 MySQL表格是分开的,所以有一个人的表格,一个地址类型的表格,一个地址表格,一个电话表格,一个电子邮件表格等等。这是一个包含许多电话号码,电子邮件地址等等。解析JSON在PHP中创建SQL插入语句
我已经能够从外部URL解码JSON。以下是使用print_r的代码和输出示例。
$json_string = 'http://....';
$jsondata = file_get_contents($json_string);
$data = json_decode($jsondata, TRUE);
1记录样品:
Array ([objects] => Array ([0] => Array ([first_name] => Anthony [last_name] => Perruzza [name] => Anthony Perruzza [elected_office] => City councillor [url] => http://www.toronto.ca/councillors/perruzza1.htm [gender] => [extra] => Array () [related] => Array ([boundary_url] => /boundaries/toronto-wards/york-west-8/ [representative_set_url] => /representative-sets/toronto-city-council/) [source_url] => http://www.toronto.ca/councillors/perruzza1.htm [offices] => Array ([0] => Array ([tel] => 416-338-5335)) [representative_set_name] => Toronto City Council [party_name] => [district_name] => York West (8) [email] => [email protected] [personal_url] => [photo_url] =>)) [meta] => Array ([next] => /representatives/?limit=1&offset=1 [total_count] => 1059 [previous] => [limit] => 1 [offset] => 0))
JSON代码示例:
{"objects": [
{"first_name": "Keith",
"last_name": "Ashfield",
"name": "Keith Ashfield",
"elected_office": "MP",
"url": "http://www.parl.gc.ca/MembersOfParliament/ProfileMP.aspx?Key=170143&Language=E",
"gender": "",
"extra": {},
"related": {
"boundary_url": "/boundaries/federal-electoral-districts/13003/",
"representative_set_url": "/representative-sets/house-of-commons/"
},
"source_url": "http://www.parl.gc.ca/MembersOfParliament/MainMPsCompleteList.aspx?TimePeriod=Current&Language=E",
"offices": [
{ "type": "legislature",
"fax": "613-996-9955",
"postal": "House of Commons\nOttawa, Ontario\nK1A 0A6",
"tel": "613-992-1067"
},
{ "type": "constituency",
"fax": "506-452-4076",
"postal": "23 Alison Blvd (Main Office)\nFredericton, New Brunswick\nE3C 2N5",
"tel": "506-452-4110"
}
],
"representative_set_name": "House of Commons",
"party_name": "Conservative",
"district_name": "Fredericton",
"email": "[email protected]",
"personal_url": "",
"photo_url": "http://www.parl.gc.ca/MembersOfParliament/Images/OfficialMPPhotos/41/AshfieldKeith_CPC.jpg"
}
],
"meta": {
"next": "/representatives/house-of-commons/?limit=1&offset=1",
"total_count": 307,
"previous": null,
"limit": 1,
"offset": 0
}
}
,你可以提供任何帮助将不胜感激。在过去的几天里,我一直在努力弄清楚自己的头发。
我试过自定义代码,如下所示,使其工作,但我一直没有能够击中甜蜜点。请不要,这段代码不会引用我的数据或变量。我删除了不适合我的东西。我只是包括它给你一个想法,我已经尝试过。
foreach ($data as $item) {
echo $item->{'first_name'} . "<br/>";
echo $item->{'last_name'};
}
如果你能指出我能够解析出数组的任何级别的数据的方向,将不胜感激。
最佳,
小号
我认为json代码的代表性样本也会有用,如果您可以发布该代码? – vascowhite 2012-03-18 19:16:14
阅读http://www.php.net/manual/en/language.types.array.php – Rob 2012-03-18 19:06:40
感谢您的回复。刚刚发布了上面的JSON示例。我也阅读上面提供的手动链接,并通过我正在阅读的内容尝试其他几个。 – RawAnimal 2012-03-18 20:41:50