当前位置: 首页 > 面试题库 >

使用php编码json吗?

那开济
2023-03-14
问题内容

我想用如下的php编码功能获取json

<?php 
  require "../classes/database.php";

  $database = new database();
  header("content-type: application/json");
  $result = $database->get_by_name($_POST['q']);   //$_POST['searchValue']

  echo '{"results":[';
  if($result)
  {
     $i = 1;
     while($row = mysql_fetch_array($result))
     {
        if(count($row) > 1) 
        {
           echo json_encode(array('id'=>$i, 'name' => $row['name']));
           echo ",";
        }
        else 
        {
           echo json_encode(array('id'=>$i, 'name' => $row['name']));
        }
        $i++; 
     }
  }
  else
  {
     $value = "FALSE";
     echo json_encode(array('id'=>1, 'name' => ""));  // output the json code
  }

  echo "]}";

我希望输出json是这样的

{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]}

但输出json如下所示

{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"},]}

当您意识到结尾处有逗号时,我想将其删除,以便使用正确的json语法。如果删除了echo ",";多个结果时json会像这样生成{"results":[{"id":1,"name":"name1"}{"id":2,"name":"name2"}]},并且语法也是错误的,则删除json语法

希望每个人都明白我的意思,任何想法都将不胜感激


问题答案:

如果我是你,我不会json_encode每个单独的数组,而是将数组合并在一起,然后json_encode在最后合并数组。下面是使用5.4的短数组语法的示例:

$out = [];
while(...) {
  $out[] = [ 'id' => $i, 'name' => $row['name'] ];
}
echo json_encode($out);


 类似资料:
  • 问题内容: 我有一个用于ERP系统的快速开发工具,该工具仅允许使用vbscript。我正在尝试使用VBS创建一个简单的AJAX请求。可以使用“ Microsoft.XMLHTTP”对象。 下一步是使用json从网络服务器接收数据。但是在VBS中似乎没有像“ json_decode”或其他功能。 有人知道解决方案吗?还是开发自己的json函数的唯一选择? 问题答案: 由于JSON是一种分层数据格式,

  • 问题内容: 我有一些json,我需要解码,更改然后编码,而不会弄乱任何字符。 如果我在json字符串中包含unicode字符,它将无法解码。我不知道为什么,因为json.org说一个字符串可以包含:。但这在python中也不起作用。 我可以使用utf8_encode,该字符串将允许使用json_decode对字符串进行解码,但是字符会被压缩成其他形式。这是来自结果数组的print_r的结果。两个字

  • 本文向大家介绍PHP 编码JSON字符串,包括了PHP 编码JSON字符串的使用技巧和注意事项,需要的朋友参考一下 示例 该json_encode函数会将一个PHP数组(或者,从PHP 5.4开始,一个实现该JsonSerializable接口的对象)转换为JSON编码的字符串。如果成功,则返回JSON编码的字符串;如果失败,则返回FALSE。 在编码期间,PHP数据类型string,intege

  • 问题内容: 我正在查询返回字段(message_type和百分比)的表。我使用PHP编码json数据,这是我的方法 输出: 如您所见,json_encode函数正在添加花括号,引号和对象键名称。 我想要的是将json仅解析为二维数组,这是所需的输出: 我也尝试手动对其进行编码,但无法获得所需的结果。 问题答案: PHP 使用一定数量的魔术来确定给定的矢量是编码为JSON对象还是数组,但是简单的规则

  • 问题内容: 我有一个传递参数的url使用json_encode每个值,如下所示: 返回的结果为: 我可以用来解析每个值以进行进一步的数据处理吗? 谢谢。 问题答案: 如果第二个值为true,将返回一个对象或数组:

  • 我在服务器端对JSON进行了编码(使用ESAPI编码器),然后客户机检索bean的字段并进行进一步的处理。 在服务器端 编码的JSON字符串 \x7b\x22name\x22\x3a\x22sameer\x22,\x22company\x22\x3a\x22company\x22,\x22designation\x22\x3a\x22developer\x22\x7d 在客户端