使用PHP读取JSON数据

时间:2011-05-03 11:25:00

标签: php json solr

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

  }}

使用PHP读取student_id,student_name的简单方法是什么?

5 个答案:

答案 0 :(得分:15)

使用$obj = json_decode($yourJSONString);将其转换为对象。

然后使用foreach($obj->response->docs as $doc)迭代“docs”。

然后,您可以使用$doc->student_id$doc->student_name[0]访问字段。

答案 1 :(得分:10)

PHP有一个json_decode函数,可以将JSON字符串转换为数组:

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

当然,您可能想要遍历学生列表而不是访问索引0。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

为什么不直接使用Solr的PHP客户端或PHP响应编写器?见http://wiki.apache.org/solr/SolPHP

答案 4 :(得分:0)

$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>";
}