2013-08-12 5 views
-1

привет, я видел здесь несколько таких вопросов, но ни один из них не нашел. я всю ночь пытался понять это, и я был бы очень признателен, если бы у меня был пролив. Я пытаюсь получить конкретную вещь из json-вывода. в python я бы знал, как это сделать, но я не знаю, как это сделать в php. выход JSON являетсяполучение определенного элемента из json в php

{"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} 

, что я пытаюсь выйти из этого является только «транс» я знаю, что вы должны использовать что-то с Еогеасп, чтобы сделать это. я пробовал

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

однако это ничего не делает. если кто-то может помочь, это будет оценено по достоинству.

+0

появляется этот вопрос быть не по теме, потому что ОП не знает синтаксис цикла 'foreach', который для объяснения явно выходит за рамки для сайта для энтузиастов и профессоров программистов. – Gordon

ответ

2

попробовать

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

Этот код выглядит странно – zerkms

+0

ой, я не могу поверить, что я пропустил это. – user2602977

+0

но спасибо. решила проблему – user2602977

1

В такой ситуации было бы полезно иметь json_decode вернет вам массив, а не объект PHP. Вы можете сделать это, добавив необязательный второй параметр.

Поскольку предложения в вашем примере представляют собой массив, вы можете видеть, что по крайней мере с этим вводом вы можете легко перейти к элементу trans, указав элемент 0 массива.

$jsondata = json_decode($jsonstuff, true); 

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

// See full array 
var_dump($jsondata); 
0

Вы должны отформатировать ваш Еогеасп код

foreach($jsondata->sentences as $ret) { instend из

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

отформатированный код

$jsondata = json_decode($jsonstuff); 
foreach($jsondata->sentences as $ret) { 
    $rets = $ret->trans; 
    print $rets; 
} 
Смежные вопросы