在php中从json获取特定项目

时间:2013-08-12 04:32:02

标签: php arrays json

你好我在这里看过几个像这样的问题,但我发现没有任何问题。香港专业教育学院整晚都试图想出这个问题,如果我有一个明确的答案,我会非常感激。我试图从json输出得到一个特定的东西。在python我会知道如何做到这一点,但我不知道如何在PHP中去做。 json输出是

{"sentences":[{"trans":"ã“ã‚“ã«ã¡ã¯","orig":"hello","translit":"Kon'nichiwa","src_translit":""}],"dict":[{"pos":"nom","terms":["今日ã¯"],"entry":[{"word":"今日ã¯","reverse_translation":["hello","good day"]}],"base_form":"hello","pos_enum":1}],"src":"en","spell":{"spell_html_res":"Hello!","spell_res":"Hello!","correction_type":[10],"related":1},"server_time":2}

我想要摆脱的只是“反式”我知道你必须使用foreach的东西才能做到这一点。我试过了

$jsondata = json_decode($jsonstuff);
foreach($jsondata as $ret->sentences) {
$rets = $ret->trans;}
print $rets;
然而,这没有任何作用。如果有人可以请求帮助,将不胜感激。

3 个答案:

答案 0 :(得分:2)

$jsondata = json_decode($jsonstuff);
foreach($jsondata->sentences as $ret) {
    $rets = $ret->trans;
    print $rets;
}

答案 1 :(得分:1)

在这种情况下,让json_decode返回一个数组而不是一个php对象可能会有所帮助。您可以通过添加可选的第二个参数来完成此操作。

由于您的示例中的句子是一个数组,您可以看到至少使用此输入,您可以通过引用数组的元素0轻松地到达trans元素。

$jsondata = json_decode($jsonstuff, true);

echo $jsondata['sentences'][0]['trans'];

// See full array
var_dump($jsondata);

答案 2 :(得分:0)

您必须格式化您的foreach代码

foreach($jsondata->sentences as $ret) {而不是

foreach($jsondata as $ret->sentences) {

格式化代码

$jsondata = json_decode($jsonstuff);
foreach($jsondata->sentences as $ret) {
    $rets = $ret->trans;
    print $rets;
}