如何在php中解析自定义json


how to parse a custom json in php

我有一个json值,如下所示:

 {
    "A":{"id":"1","checked":false},
    "B":{"id":"2","checked":true},
    "C":{"id":"3","checked":true}
}

我只需要idchecked的值。我不知道ABC中放了什么值。

        $jsonIterator = new RecursiveIteratorIterator(
            new RecursiveArrayIterator(json_decode($chboxs, TRUE)),
            RecursiveIteratorIterator::SELF_FIRST);
        foreach ($jsonIterator as $key => $val) {
            if(is_array($val)) {
               // echo "$key:'n";
            } else {
                //echo "$key => $val'n";
                if($val == true){
                    $val = 1 ;
                }else{
                    $val = 0 ;
                }
                $ch = array();
                $ch['isvisible'] = $val;
                $this->m_general->edit('coupon_properties' , $ch , array('id'=>$key));
            }
        }

它不太好用。

只需使用json_decode:

$arr = json_decode('{
    "A":{"id":"1","checked":false},
    "B":{"id":"2","checked":true},
    "C":{"id":"3","checked":true}
}');

因此,这将给你作为:

Array (
  A => Array (
    id => 1,
    checked => false
  )
  B => ...
)

你可以得到它像:

$arr["A"]["id"];      // 1
$arr["B"]["checked"]; // true

因此,要进行迭代,可以使用:

foreach ($arr as $ar) {
  echo $ar["id"], $ar["checked"];
}