php从json编码中获取值

con*_*men 26 php json

我有一个url传递参数使用json_encode每个值如下:

$json = array
(
    'countryId' => $_GET['CountryId'],
    'productId' => $_GET['ProductId'],
    'status'    => $_GET['ProductId'],
    'opId'      => $_GET['OpId']
);

echo json_encode($json);
Run Code Online (Sandbox Code Playgroud)

它的结果如下:

{  
  "countryId":"84",
  "productId":"1",
  "status":"0",
  "opId":"134"
}
Run Code Online (Sandbox Code Playgroud)

我可以json_decode用来解析每个值以进行进一步的数据处理吗?

谢谢.

Mih*_*rga 68

json_decode() 如果第二个值是真的,它将返回一个对象或数组:

$json = '{"countryId":"84","productId":"1","status":"0","opId":"134"}';
$json = json_decode($json, true);
echo $json['countryId'];
echo $json['productId'];
echo $json['status'];
echo $json['opId'];
Run Code Online (Sandbox Code Playgroud)

  • @151291 `$json[0].countryId` (2认同)
  • @MihaiIorga 正确的解决方案是`$json[0]->countryId`,而不是`$json[0].countryId`,因为点是php 中字符串连接的用户。 (2认同)

Vla*_*ban 11

json_decode将返回最初编码的相同数组.对于instanse,如果你

$array = json_decode($json, true);
echo $array['countryId'];
Run Code Online (Sandbox Code Playgroud)

要么

$obj= json_decode($json);

echo $obj->countryId;
Run Code Online (Sandbox Code Playgroud)

这两个都将回显84.我认为json_encode和json_decode函数名称是不言自明的......