从 JSON 编码中获取 PHP 值

44

我有一个URL传递参数,使用json_encode对每个值进行如下处理:

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

echo json_encode($json);

它返回了以下结果:

{  
  "countryId":"84",
  "productId":"1",
  "status":"0",
  "opId":"134"
}

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

谢谢。


1
什么?你不是认真地想在PHP中使用json_encode对某个东西进行编码,然后再在同一个PHP中解码吗?我真的很困惑。 - FrankieTheKneeMan
3
他可能想要将编码后的JSON存储在某个地方以备将来使用。 - Vladimir Hraban
2个回答

103

json_decode()如果第二个参数为true,则返回一个对象或数组:

$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'];

谢谢兄弟,这对我很有帮助 :) 解决方案非常简单和好。 - Ahsan Hussain
我该如何从这个 [{"countryId":"84","productId":"1","status":"0","opId":"134"}] 中获取值? - 151291
2
@151291 $json[0].countryId - Mihai Iorga
4
@MihaiIorga 正确的解决方案是 $json[0]->countryId,而不是 $json[0].countryId,因为在 PHP 中点号用于字符串连接。 - Flavio Merolli

25

json_decode将返回与最初编码的数组相同的数组。 例如,如果您使用以下代码对数组进行编码:

$array = json_decode($json, true);
echo $array['countryId'];

或者

$obj= json_decode($json);

echo $obj->countryId;

这两个将输出84。我认为json_encode和json_decode函数名已经很自解释了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接