简体   繁体   English

使用PHP进行JSON解析 - 最有效的方法

[英]JSON parsing with PHP - most efficient way

I send JSON object to server. 我将JSON对象发送到服务器。 On server side I have to parse this obj with PHP. 在服务器端,我必须用PHP解析这个obj。

I'm stuck in the loop. 我陷入了困境。 I don't know how to proceed inside loops. 我不知道如何进行内部循环。

Im looking for most efficient way to parse this object and save all variables into DB. 我正在寻找解析此对象的最有效方法,并将所有变量保存到DB中。

[
{"ADI":{"id":-1,"danger":0}},
{"ADI":{"id":3,"danger":0}},
{"ADI":{"id":3,"danger":0}},
{"ALE":{"_id":1,"_name":"Milk","contain":false}},
{"ALE":{"_id":2,"_name":"cfg","contain":false}},
{"ALE":{"_id":4,"_name":"Lakt","contain":false}},
{"PRO":{"image":"","code":"123456","name":"jfbj"}},
{"USER":{"email":"spam@spam.com"}}
]

For now I have done this: 现在我做到了这个:

$string = file_get_contents('php://input');

$array = json_decode($string, true);
//print_r($array);

foreach ($array as $t => $index) {
   foreach ($index as $vas => $r) {
     //Here I'm stuck!!!
   }
}

you can grab values from json 你可以从json中获取值

<?php
$string = '[
{"ADI":{"id":-1,"danger":0}},
{"ADI":{"id":3,"danger":0}},
{"ADI":{"id":3,"danger":0}},
{"ALE":{"_id":1,"_name":"Milk","contain":false}},
{"ALE":{"_id":2,"_name":"cfg","contain":false}},
{"ALE":{"_id":4,"_name":"Lakt","contain":false}},
{"PRO":{"image":"","code":"123456","name":"jfbj"}},
{"USER":{"email":"spam@spam.com"}}
]';
$array = json_decode($string, true);
echo "<pre>";
//print_r($array);exit;
for ($i=0;$i<=(count($array)-1);$i++){
    //print_r($array[$i]);
    if (array_key_exists("ADI",$array[$i])) {
        $ArrVal = $array[$i]['ADI'];
        $id = $ArrVal['id'];
        $danger = $ArrVal['danger'];
        echo "$id,$danger ";
  }
}
?>

check this out : 看一下这个 :

echo "<pre>";
print_r($array);

for ($i=0; $i < count($array); $i++) {
  if(isset($array[$i]["ADI"])){
    print_r($array[$i]["ADI"]);
  }

  if(isset($array[$i]["ALE"])){
    print_r($array[$i]["ALE"]);
  }
}
echo "</pre>";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM