未定义的索引名称 [英] undefined index Name

查看:64
本文介绍了未定义的索引名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试剥离json文件的内容并映射到mysql数据库结构,但是"tags"值存在问题,因为找不到"Name"值,但仍填充了2个条目.数据库在正确的位置

Hi I am working on trying to strip the contents of a json file and map to a mysql database structure but am having an issue with the "tags" values in that the value Name is not found yet still populates 2 entries in the database in the right place

这是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对于以下实例无效:

You php code works just fine, but your json is not valid for instance :

"configurationStateId":, => double quote missing.

使用双引号代替单引号:

Use double quote instead of single quote :

"ARN":", => ""

http://jsonlint.com/

这篇关于未定义的索引名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆