【问题标题】:invalid json response in php when json response inside json response当json响应中的json响应时,php中的json响应无效
【发布时间】:2018-03-01 11:32:16
【问题描述】:

我尝试打印json response,但"" 已添加到我的json response

我试过下面的代码phpiddrupal field生成

<?php
$data = array("title"=>"test","body"=>"test body");
$php = json_encode($data,JSON_FORCE_OBJECT);
echo json_encode(array("php"=>$php,"id"=>10));
?>

输出:

{"php":"{\"title\":\"test\",\"body\":\"test body\"}","id":10}

但我想要如下所示的输出

{"php":{"title":"test","body":"test body"},"id":10}

我为上述问题添加了更多代码

{"php":"{\"title\":\"test\",\"body\":\"test body\"}","id":10}

为什么不从echo json_encode($php); 中删除json_encode

我如何才能第二次获得以上输出

【问题讨论】:

  • 为什么要投票?先看我的代码
  • @mickmackusa 查看我编辑的代码

标签: json drupal jsonresponse


【解决方案1】:

您在 JSON 中进行了两次编码:

$data = array("title"=>"test","body"=>"test body");
$php = json_encode($data,JSON_FORCE_OBJECT);
echo $php ; // remove json_encode() here

问题编辑后:

$data = array("title"=>"test","body"=>"test body");
echo json_encode(array("php"=>$data,"id"=>10));

【讨论】:

  • @Bhargav 无需 json_encode,只需在初始数组中添加 $data 即可。 $data=['title'=&gt;'test'];$array=['php'=&gt;$data,'id'=&gt;10];echo json_encode($array);
  • @Bhargav 在编码之前完成所有数组修改。将所有相关的问题详细信息作为编辑添加到您的问题中
  • @Bhargav 所以,解码、插入、编码:$array=json_decode($json,true);$array['php']=$data;echo json_encode($array);
  • 但我只能 print or echo 输出未设置在代码内,因为 global php''(single quate) 内输出输出
  • 我尝试了您的建议代码,但输出类似于[ { "php": "Array", "nid": "8075" } ]
【解决方案2】:

你也可以这样做,

<?php
    $data = array("title"=>"test","body"=>"test body");
    echo json_encode(array("php"=>$data,"id"=>10));
?>

【讨论】:

  • @Bhargav 你到底想要什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多