首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP解析(3)嵌套JSON

用PHP解析(3)嵌套JSON
EN

Stack Overflow用户
提问于 2019-06-20 07:09:23
回答 4查看 94关注 0票数 0

我试图用PHP解析后续JSON,但是在最后一个级别("bank")中有一些问题,下面是信息:

杰森:

代码语言:javascript
复制
{
    "loan": {
        "fu": "1046",
        "vb": "84",
        "loan_type": "1",
        "type_cocg": "14",
        "meeting_place": "PLACE",
        "meeting_date": "2019-05-29",
        "creation_date": "2019-05-29 12:49:53",
        "user_id": "1001-1556",
        "member": [{
            "mem_id": "1",
            "name": "FIRST MEMBER",
            "parentage": "PARENTAGE",
            "cnic": "3393399393393",
            "gender": "1",
            "dob": "1994-05-29",
            "marital_status": "1",
            "spouse_name": "SPOUSE",
            "spouse_cnic": "9939439939393",
            "pres_address": "PRES ADDRESS",
            "perma_address": "PERMA ADDRESS",
            "mother_name": "MOTHER NAME",
            "cell": "94494944949",
            "loan_amount": "30000",
            "network": "1",
            "sim_ownership": "2",
            "co_status": "3",
            "occupation_category": "2",
            "agri_occ": "null",
            "nonagri_occ": "3",
            "education": "1",
            "disability": "2",
            "religion": "6",
            "head": "2",
            "purpose": "2",
            "repayment_mode": "null",
            "duration": "4",
            "purpose_ent": "null",
            "purpose_agri": "null",
            "area_unit": "2",
            "agri_investment": "",
            "agri_expense": "",
            "purpose_livestock": "3",
            "loan_id_mem": "1",
            "monthly_income": "15000",
            "monthly_expense": "2000",
            "monthly_saving": "13000",
            "yearly_saving": "156000",
            "male": "2",
            "female": "2",
            "children": "2",
            "cow": "2",
            "buffalo": "2",
            "goat": "2",
            "sheep": "2",
            "agri_area_unit": "1",
            "land_own": "3",
            "land_lease": "3",
            "house_own": "3",
            "house_rent": "3",
            "caste": "CASTE",
            "active_loan": "1",
            "bank": [{
                "id": "1",
                "loan_id": "1",
                "loan_mem_id": "1",
                "bank_id": "1",
                "bank_loan": "",
                "bank_remaining": "2000",
                "purpose": "1",
                "purpose_agri": "16",
                "purpose_livestock": "null",
                "purpose_ent": "null"
            }, {
                "id": "2",
                "loan_id": "1",
                "loan_mem_id": "1",
                "bank_id": "6",
                "bank_loan": "",
                "bank_remaining": "500",
                "purpose": "3",
                "purpose_agri": "16",
                "purpose_livestock": "null",
                "purpose_ent": "14"
            }]
        }, {
            "mem_id": "2",
            "name": "SECOND MEMBER",
            "parentage": "PARENTAGE",
            "cnic": "3939939393399",
            "gender": "1",
            "dob": "1994-05-29",
            "marital_status": "1",
            "spouse_name": "SPOUSE",
            "spouse_cnic": "4949949494999",
            "pres_address": "ADDRESS",
            "perma_address": "ADDRESS",
            "mother_name": "MOTHER",
            "cell": "49494949494",
            "loan_amount": "20000",
            "network": "1",
            "sim_ownership": "2",
            "co_status": "2",
            "occupation_category": "2",
            "agri_occ": "null",
            "nonagri_occ": "2",
            "education": "1",
            "disability": "1",
            "religion": "1",
            "head": "1",
            "purpose": "1",
            "repayment_mode": "null",
            "duration": "3",
            "purpose_ent": "null",
            "purpose_agri": "16",
            "area_unit": "1",
            "agri_investment": "1500",
            "agri_expense": "2000",
            "purpose_livestock": "3",
            "loan_id_mem": "1",
            "monthly_income": "15000",
            "monthly_expense": "200",
            "monthly_saving": "14800",
            "yearly_saving": "177600",
            "male": "0",
            "female": "0",
            "children": "2",
            "cow": "2",
            "buffalo": "2",
            "goat": "2",
            "sheep": "2",
            "agri_area_unit": "1",
            "land_own": "3",
            "land_lease": "3",
            "house_own": "3",
            "house_rent": "2",
            "caste": "CASTE 2",
            "active_loan": "1",
            "bank": [{
                "id": "3",
                "loan_id": "1",
                "loan_mem_id": "2",
                "bank_id": "6",
                "bank_loan": "",
                "bank_remaining": "300",
                "purpose": "1",
                "purpose_agri": "43",
                "purpose_livestock": "null",
                "purpose_ent": "null"
            }]
        }]
    }
}

PHP代码:

代码语言:javascript
复制
$json = json_decode($content, true);
$json['loan']['fu']; // This works !

foreach($json['loan']['member'] as $item) {
   $name = $item['name']; // This works !
   foreach($json['loan']['member']['bank'] as $bank_item) { // THIS DOES NOT WORKS!

   }
}

最后一个foreach循环给出了en错误,它说:

注意:未定义索引:银行

有没有任何线索可以说明是什么导致了这个问题,或者是否有一些改进的方法来解析同一个JSON,这将是非常有帮助的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-06-20 07:11:43

你的json解析很好。您的访问缺少索引。

由于"bank“位于一个”成员“数组中,所以您应该以$json['loan']['member'][0]['bank']的形式访问它(0是硬编码的--您也可以切换1)。

如果你用在那时,你应该做:

代码语言:javascript
复制
foreach($json['loan']['member'] as $item) {  
   $name = $item['name']; // This works !
   foreach($item['bank'] as $bank_item) { // use $item

   }
}
票数 2
EN

Stack Overflow用户

发布于 2019-06-20 07:15:25

只使用一个foreach()并获取银行元素值。如果进一步需要循环银行元素,则可以使用另一个foreach()

代码语言:javascript
复制
$json = json_decode($content, true);
foreach($json['loan']['member'] as $item) {
  print_r($item['bank']);
  foreach($item['bank'] as $bank_item) { 
      echo $bank_item;
   }
}

演示: https://3v4l.org/qB8mV

票数 1
EN

Stack Overflow用户

发布于 2019-06-20 09:19:29

您已经错过了该成员也是多维数组。

代码语言:javascript
复制
$json = json_decode($content, true);
    /*
    echo "<pre>";
    print_r($json);
    echo "</pre>";*/
    foreach($json['loan']['member'] as $item => $value) {

       $name = $value['name']; // This works !

       foreach($json['loan']['member'][$item]['bank'] as $bank_item) { // THIS DOES NOT WORKS!

            print_r($bank_item);
       }


    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56680745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档