2017-01-04 2 views
3

ここでは、jsonオブジェクト内に1つの中括弧と1つのゼロを削除します。jsonオブジェクトで0のインデックスを持つ余分な中括弧を削除します。

私は多くを試みましたが、成功しませんでした。

以下、コードを投稿しています。ご覧ください。

{ 
    "responseCode": 200, 
    "status": "success", 
    "statusReason": "Home Details", 
    "result": [ 
    { 
     "branch_details": { 
     "0": { //this 0 index and one curly bracket 
      "company_company_id": "12345", 
      "company_name": "AVIS", 
      "company_image": "uploads/avis.png", 
      "company_gps": "12.3499,39.41454", 
      "company_address": "dfdfhf", 
      "company_phone": "8951177685", 
      "company_rating": "0", 
      "branch_id": "1234", 
      "branch_name": "avis1", 
      "branch_image": "uploads/avis.png", 
      "branch_gps": "12.3499,39.41454", 
      "branch_address": "eredfdf", 
      "branch_phone": "6745745456465", 
      "branch_rating": "0" 
     },//this curly bracket 
     "car_details": [ 
      { 
      "car_id": "123", 
      "name": "audi", 

      }, 
      { 
      "car_id": "14782", 
      "name": "bmw", 

      }, 
      { 
      "car_id": "14781", 
      "name": "nano", 

      }, 
      { 
      "car_id": "14783", 
      "name": "bmw", 

      } 
     ] 
     } 
    }, 
    { 
     "branch_details": { 
     "0": {//this 0 index and one curly bracket 
      "company_company_id": "12345", 
      "company_name": "AVIS", 
      "company_image": "uploads/avis.png", 
      "company_gps": "12.3499,39.41454", 
      "company_address": "dfdfhf", 
      "company_phone": "8951177685", 
      "company_rating": "0", 
      "branch_id": "1478", 
      "branch_name": "hertz1", 
      "branch_image": "uploads/company2.png", 
      "branch_gps": "12.3499,39.41454", 
      "branch_address": "sfgsdfg", 
      "branch_phone": "sdfgsdfgsdgf", 
      "branch_rating": "0" 
     },//this curly bracket 
     "car_details": [] 
     } 
    } 
    ] 
} 

ここでは、中かっことゼロインデックスのペアを削除したいと思いますが、作成できません。

コード

このコードは、それぞれの内部にある、私はそれの一部を掲載しました。

$this->db->select("IFNULL(company.company_id,'') as company_company_id,IFNULL(company.name,'') as company_name,IFNULL(company.image,'') as company_image,IFNULL(company.gps,'') as company_gps,IFNULL(company.address,'')as company_address,IFNULL(company.phone,'')as company_phone,(select IFNULL(avg(rating),0) from company_rating where user_id='$user_id' and delete_status ='false')as company_rating,IFNULL(branch_id,'') as branch_id,IFNULL(branch.name,'') as branch_name,IFNULL(branch.image,'') as branch_image,IFNULL(branch.gps,'') as branch_gps,IFNULL(branch.address,'')as branch_address,IFNULL(branch.phone,'')as branch_phone,(select IFNULL(avg(rating),0) from branch_rating where user_id='$user_id' and delete_status ='false')as branch_rating"); 

$this->db->from("branch"); 
$this->db->join("company","branch.company_id=company.company_id"); 
$this->db->where("branch.branch_id",$branch_id); 
$this->db->where("branch.delete_status" , "false"); 
$this->db->where("company.delete_status" , "false"); 
$tempquery111 = $this->db->get(); 

$temp1['branch_details'] = $tempquery111->result(); 


$this->db->select("IFNULL(car_id,'') as car_id,IFNULL(name,'') as name,IFNULL(image,'') as image,IFNULL(model,'') as model,IFNULL(price,'')as price,IFNULL(year,'')as year,IFNULL(type,'')as type,IFNULL(`no_of_seats`,'')as `no_of_seats`,IFNULL(`gear_type`,'') as `gear_type`,IFNULL(color,'') as color,insurance,status,IFNULL(description,'') as description,(select IFNULL(avg(rating),0) from car_rating where user_id='$user_id' and delete_status ='false')as rating"); 

$car_details = $this->db->get_where("cars",array("cars.branch_id" =>$branch_id ,"delete_status" => "false")); 
$temp1['branch_details']['car_details'] = $car_details->result(); 

array_push($tempquery11,$temp1); 

何か提案できますか?

+0

'$ tempquery11'はどこに作成されていますか? – RiggsFolly

+0

私は配列のプッシュをしています、ここにいくつかの要件があります。@ RiggsFolly – sradha

+0

あなたが削除したい '' 0 ':{....} 'は、実際には最初のブランチの詳細の配列インデックスです。私はあなたが配列に別のブランチを持っていればそれが '' 1 ''で始まると思います:{....} '私はこの言語を知らないので詳細には役立つことはできませんが、これを受け入れ、JSONのコンシューマに集中して、必要な方法でブランチディテールを抽出する前処理が容易になります。 –

答えて

0

dbを照会するときにcodeigniterで配列が返されます(結果が1つだけの場合でも)row()は1行を返します。

$car_details->result();

$car_details->row();への謝罪を変更してみてください、私はJSONオブジェクトを読み違えます。

は、このようなあなたの配列を設定してみてください。私は

$tempquery111->result();

$tempquery111->row();にEDITを変更すると述べている必要があります。

company_company_idで動作する場合、それは作品全体で機能します。それぞれについて同じことをするだけで済みます。

$temp1['branch_details']['company_company_id'] = $tempquery111->result()->company_company_id; 

これはもっと良い方法があると確信していますが、私の人生にとっては今はそれを考えることができません。

+0

しかし、そのようないくつかのエラーを示しています。 致命的なエラー: – sradha

+0

の配列としてstdClass型のオブジェクトを使用できません@ sradha Hmmm - 私は自分の答えを更新しました。問題は解決するはずですが、それを行う最良の方法ではないと思います。うまくいけば、誰かが体重を増やすかもしれない。 –

関連する問題