Php 警告:json_decode()要求参数1为字符串,数组给定
代码如下:Php 警告:json_decode()要求参数1为字符串,数组给定,php,Php,代码如下: <? $fields = json_decode($this->item->extra_fields); $allowed_fields= array('3','5'); if ( $fields != NULL ) { foreach ( $fields as $field ) { if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
<? $fields = json_decode($this->item->extra_fields);
$allowed_fields= array('3','5');
if ( $fields != NULL ) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
在PHP从5.3升级到5.4之前,一切正常
我不是开发人员,所以请尽量不要太专业。提前谢谢 如前所述,这样做
$fields = json_decode($this->item->extra_fields, true);
如果为TRUE,则返回的对象将转换为关联数组
$fields将是一个数组,foreach()
将工作如前所述,按如下方式操作
$fields = json_decode($this->item->extra_fields, true);
如果为TRUE,则返回的对象将转换为关联数组
$fields将是一个数组,foreach()
将工作如前所述,按如下方式操作
$fields = json_decode($this->item->extra_fields, true);
如果为TRUE,则返回的对象将转换为关联数组
$fields将是一个数组,foreach()
将工作如前所述,按如下方式操作
$fields = json_decode($this->item->extra_fields, true);
如果为TRUE,则返回的对象将转换为关联数组
$fields将是一个数组,
foreach()
将起作用您无法检查它的是否为空
<? $fields = json_decode($this->item->extra_fields);
$allowed_fields= array('3','5');
if($fields) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
您无法检查其是否为NULL
<? $fields = json_decode($this->item->extra_fields);
$allowed_fields= array('3','5');
if($fields) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
您无法检查其是否为NULL
<? $fields = json_decode($this->item->extra_fields);
$allowed_fields= array('3','5');
if($fields) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
您无法检查其是否为NULL
<? $fields = json_decode($this->item->extra_fields);
$allowed_fields= array('3','5');
if($fields) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
请注意,json_decode接受字符串,根据上面的错误,您试图将数组传递给它,因此如果您需要迭代字段数组,您可能希望忽略json_decode,因为您似乎已经有了数组
json_encode接受数组,但它会给出一个字符串,所以当您尝试在sting上迭代时,它会给您一个警告
因此,请尝试下面的代码
<? $fields = $this->item->extra_fields;
$allowed_fields= array('3','5');
if ( $fields ) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
请注意,json_decode接受字符串,根据上面的错误,您试图将数组传递给它,因此如果您需要迭代字段数组,您可能希望忽略json_decode,因为您似乎已经有了数组
json_encode接受数组,但它会给出一个字符串,所以当您尝试在sting上迭代时,它会给您一个警告
因此,请尝试下面的代码
<? $fields = $this->item->extra_fields;
$allowed_fields= array('3','5');
if ( $fields ) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
请注意,json_decode接受字符串,根据上面的错误,您试图将数组传递给它,因此如果您需要迭代字段数组,您可能希望忽略json_decode,因为您似乎已经有了数组
json_encode接受数组,但它会给出一个字符串,所以当您尝试在sting上迭代时,它会给您一个警告
因此,请尝试下面的代码
<? $fields = $this->item->extra_fields;
$allowed_fields= array('3','5');
if ( $fields ) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
请注意,json_decode接受字符串,根据上面的错误,您试图将数组传递给它,因此如果您需要迭代字段数组,您可能希望忽略json_decode,因为您似乎已经有了数组
json_encode接受数组,但它会给出一个字符串,所以当您尝试在sting上迭代时,它会给您一个警告
因此,请尝试下面的代码
<? $fields = $this->item->extra_fields;
$allowed_fields= array('3','5');
if ( $fields ) {
foreach ( $fields as $field ) {
if ( in_array($field->id, $allowed_fields ) && $field->value != NULL) {
?>
<span class = "list_for<? echo $field->id; ?>">
<? echo $field->value;?></span><? } } }?>
测试这个。在发送到PHP之前,将jsonObj更改为字符串
jsonObj{..}
jsonObj2=JSON.stringify(jsonObj);
$.ajax({
类型:“POST”,
url:“Methods.php”,
数据:{'Json_data':jsonObj2},
成功:功能(响应){
console.log(“结果:+响应”);
}
});
测试这个。在发送到PHP之前,将jsonObj更改为字符串
jsonObj{..}
jsonObj2=JSON.stringify(jsonObj);
$.ajax({
类型:“POST”,
url:“Methods.php”,
数据:{'Json_data':jsonObj2},
成功:功能(响应){
console.log(“结果:+响应”);
}
});
测试这个。在发送到PHP之前,将jsonObj更改为字符串
jsonObj{..}
jsonObj2=JSON.stringify(jsonObj);
$.ajax({
类型:“POST”,
url:“Methods.php”,
数据:{'Json_data':jsonObj2},
成功:功能(响应){
console.log(“结果:+响应”);
}
});
测试这个。在发送到PHP之前,将jsonObj更改为字符串
jsonObj{..}
jsonObj2=JSON.stringify(jsonObj);
$.ajax({
类型:“POST”,
url:“Methods.php”,
数据:{'Json_data':jsonObj2},
成功:功能(响应){
console.log(“结果:+响应”);
}
});
它在错误消息中已经说,用json字符串馈送它,但是你用数组$fields
馈送它不是数组。它在错误消息中已经说,用json字符串馈送它,但是你用数组$fields
馈送它不是数组。它在错误消息中已经说,用json字符串馈送它,但是你给它输入了一个数组$fields
不是数组。它在错误消息中已经说,给它输入一个json字符串,但是你给它输入了一个数组$fields
不是数组。我正要回答这个问题,回答很好,并且应该保持其余代码正常工作在他使用字段作为对象的foreach中,如果更改为assoc数组,他将不得不重写它。我添加了真位,但我仍然得到原始错误消息。“$this->item->extra_fields”中到底有什么内容,当执行var_dump($fields)?我正要自己回答这个问题,回答得很好,应该让剩下的代码继续工作。在他使用字段作为对象的foreach中,如果更改为assoc数组,他将不得不重写它。我添加了真位,但我仍然得到原始错误消息。“$this->item->extra_fields”中到底是什么,执行var_dump($fields);,会得到什么?我正要自己回答这个问题,回答得很好,应该让剩下的代码继续工作。在他使用字段作为对象的foreach中,如果更改为assoc数组,他将不得不重写它。我添加了真位,但我仍然得到原始错误消息。“$this->item->extra_fields”中到底是什么,执行var_dump($fields);,会得到什么?就要开始了