Чтение данных JSON с использованием PHP - PullRequest
9 голосов
/ 03 мая 2011

Solr возвращает ответ в следующем формате JSON.

{
  "responseHeader":{
    "status":0,
    "QTime":2,
    "params":{
      "indent":"on",
      "start":"0",
      "q":"*:*",
      "wt":"json",
      "version":"2.2",
      "rows":"10"}},
  "response":{"numFound":3,"start":0,"docs":[
      {
        "student_id":"AB1001",
        "student_name":[
          "John"]
    },
      {
        "student_id":"AB1002",
        "student_name":[
          "Joe"]
    },
      {
        "student_id":"AB1003",
        "student_name":[
          "Lorem"]
    }]

  }}

Каким будет простой способ чтения student_id, student_name с использованием PHP?

Ответы [ 5 ]

15 голосов
/ 03 мая 2011

Используйте $obj = json_decode($yourJSONString);, чтобы преобразовать его в объект.

Затем используйте foreach($obj->response->docs as $doc) для перебора "документов".

Затем вы можете получить доступ к полям, используя $doc->student_id и $doc->student_name[0].

10 голосов
/ 03 мая 2011

PHP имеет функцию json_decode, которая позволит вам превратить строку JSON в массив:

$array = json_decode($json_string, true);
$student_id = $array['response']['docs'][0]['student_id'];
...

Конечно, вы, возможно, захотите перебирать список студентов вместо того, чтобы обращаться к индексу 0.

2 голосов
/ 03 мая 2011
$result = json_decode($result, true);
$result['response']['docs'][0]['student_id'] ...
0 голосов
/ 19 ноября 2014
$json_a = json_decode($string, TRUE);
$json_o = json_decode($string);


#array method
foreach($json_a['response']['docs'] as $students)
{
    echo $students['student_id']." name is ".$students['student_name'][0];
    echo "<br>";
}

#Object Method`enter code here`
foreach($json_o->response->docs as $sthudent_o)
{
    echo $sthudent_o->student_id. " name is ".$sthudent_o->student_name[0];
    echo "<br>";
}
0 голосов
/ 03 мая 2011

Почему бы просто не использовать один из клиентов PHP для Solr или средство записи ответов PHP? Смотри http://wiki.apache.org/solr/SolPHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...