我很难用[]括号获取json字符串的值。
下面的是示例字符串
[{"ID":"5857062","FirstName":"MyFirstNamne","MiddleName":"MyMiddleName","LastName":"MyLastName"}]
我想获得以下
的值ID,FirstName,MiddleName,LastName
我做的是将str转换为json_encode()但是添加了反斜杠的字符串,所以我删除了它。我做的下一件事是我首先删除反斜杠并将其转换为json但仍然没有运气。
答案 0 :(得分:2)
如果您想阅读json
文件,可以使用file_get_contents(),
然后,您需要json_decode()来解析字符串。
当然,如果您只想从字符串中获取值,则可以将其分配给变量。
//$str = file_get_contents('./test.json');
$str ='[{"ID":"5857062","FirstName":"MyFirstNamne","MiddleName":"MyMiddleName","LastName":"MyLastName"}]
';
echo "<pre>";
var_dump(json_decode($str,true));
echo "</pre>";
注意:如果您使用true
设置json_decode()
选项,您将获得一个关联数组。
结果:
array(1) {
[0]=>
array(4) {
["ID"]=>
string(7) "5857062"
["FirstName"]=>
string(12) "MyFirstNamne"
["MiddleName"]=>
string(12) "MyMiddleName"
["LastName"]=>
string(10) "MyLastName"
}
}
然后你当然可以通过键访问值。
<强> APPEND 强>
如果您收到Control character error, possibly incorrectly encoded
的错误。
你可以删除控制角色,
PCRE支持字符类[:cntrl:]
的POSIX表示法代码:
//$str = file_get_contents('./test.json');
$str ='[{"ID":"5857062","FirstName":"MyFirstNamne","MiddleName":"MyMiddleName","LastName":"MyLastName"}]
';
$str = preg_replace('/[[:cntrl:]]/', '', $str);
echo "<pre>";
var_dump(json_decode($str,true));
echo "</pre>";
答案 1 :(得分:0)
$data = '[{"ID":"5857062","FirstName":"MyFirstNamne","MiddleName":"MyMiddleName","LastName":"MyLastName"}]';
$result = json_decode($data, TRUE);
echo "<pre>";
print_r($result);
echo $result[0]['ID'].'<br/>';
echo $result[0]['FirstName'].'<br/>';
echo $result[0]['MiddleName'].'<br/>';
echo $result[0]['LastName'].'<br/>';