嗨,我正在尝试剥离json文件的内容并映射到mysql数据库结构,但“标签”值存在问题,因为找不到“名称”值,但仍在数据库中填充2个条目.正确的位置
这是json的示例:
{
"fiLeversion":"1.0",
"configurationItems":[
{
"configurationItemVersion":"1.0",
"configurationItemCaptureTime":"2014-12-05T10:22:51.751Z",
"configurationStateId":1,
"relatedEvents":[ ],
"awsAccountId":"",
"configurationItemStatus":"Resourcediscovered",
"resourceId":"",
"ARN":"",
"awsRegion":"",
"availabilityZone":"",
"configurationStateMd5Hash":"",
"resourceType":"AWS::EC2::Instance",
"resourceCreationTime":"2014-01-06T10:37:37.000Z",
"tags":{
"Name":"dbn.prod-us.wordeo.com",
"cirrushq_id":"instance_20"
},
"relationships":[ ],
"configuration":{ }
},
{
"configurationItemVersion":"1.0",
"configurationItemCaptureTime":"2014-12-05T10:22:51.751Z",
"configurationStateId":1,
"relatedEvents":[ ],
"awsAccountId":"",
"configurationItemStatus":"Resourcediscovered",
"resourceId":"i-0f8a032c",
"ARN":"",
"awsRegion":"",
"availabilityZone":"",
"configurationStateMd5Hash":"",
"resourceType":"",
"resourceCreationTime":"",
"tags":{
"Name":"db-backup.prod-us.wordeo.com",
"cirrushq_id":"instance_7701"
},
"relationships":[ ],
"configuration":{ }
},
{ },
{
"configurationItemVersion":"1.0",
"configurationItemCaptureTime":"2014-12-05T10:22:51.751Z",
"configurationStateId":1,
"relatedEvents":[ ],
"awsAccountId":"",
"configurationItemStatus":"Resourcediscovered",
"resourceId":"",
"ARN":"",
"awsRegion":"",
"availabilityZone":"",
"configurationStateMd5Hash":"",
"resourceType":"AWS::EC2::Instance",
"resourceCreationTime":"2014-09-29T07:25:44.000Z",
"tags":{
"aws:autoscaling:groupName":"ESND-PROD-US-14-02-14"
},
"relationships":[ ],
这是PHP
<?PHP
$con=MysqLi_connect("localhost","root","","json_map");
$response = array();
$res=array();
$json = file_get_contents('C:\Users\Richard\Desktop\test.json');
if($json!=null){
$decoded=json_decode($json,true);
//$decode= var_dump($decoded);
//$ss=$decode["array"];
//echo $decoded['number'];
if(is_array($decoded["configurationItems"]))
{
foreach($decoded["configurationItems"] as $configurationItems)
//for($i=0;$i>sizeof($decoded["configurationItems"]);$i++)
{
$Name=$configurationItems["tags"]["Name"];
echo "Name:",$Name,"<br />";
$cirrushq_id=$configurationItems["tags"]["cirrushq_id"];
echo "cirrushq_id:",$cirrushq_id,"<br />";
$result = MysqLi_query($con, "INSERT INTO tag(name, cirrushq_id)
VALUES('$Name','$cirrushq_id')")or die("Insert Failed ".((is_object($con)) ? MysqLi_error($con) : (($___MysqLi_res = MysqLi_connect_error()) ? $___MysqLi_res : false)));;
}// check if row inserted or not
if ($result) {
// successfully inserted into database
$response["code"] = 1;
$response["message"] = "successfully stored tags ";
// echoing JSON response
echo json_encode($response);
} else {
// Failed to insert row
$response["code"] = 2;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
}
}
?>
解决方法:
"configurationStateId":, => double quote missing.
使用双引号代替单引号:
"ARN":", => ""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。