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的简单方法是什么?
答案 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>";
}