微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-未定义的索引名称

嗨,我正在尝试剥离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); 
            } 

        } 
} 



?> 

解决方法:

您的PHP代码可以正常工作,但是您的json实例无效:

"configurationStateId":, => double quote missing.

使用双引号代替单引号:

"ARN":", => ""

http://jsonlint.com/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐