首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON响应过多

问JSON响应过多
EN

Stack Overflow用户
提问于 2013-04-10 00:17:52
回答 2查看 100关注 0票数 1

我的JSON响应中似乎有多余的键。知道为什么吗?

以下是JSON响应的摘录:

代码语言:javascript
复制
{
      "0": "1",
      "id": "1",
      "1": "XX University",
      "name": "XX University",
      "2": "http:\/\/ree.com\/images\/xxUniversity.png",
      "backgroundImageUrl": "http:\/\/ree.com\/images\/XXUniversityLogo.png",
      "3": "http:\/\/ree.com\/images\/xxUniversity.png",
      "logoImageUrl": "http:\/\/ree.com\/images\/XXUniversityLogo.png"
    },

下面是我的PHP代码:

代码语言:javascript
复制
$query = "SELECT * from $entity"; //Bad security,for a different question
    $results = mysqli_query($con,$query);

    //Parse to JSON
    $json=array();

    while($row=mysqli_fetch_array($results)){
        $json[]=$row;
    }

    //Close connection
    mysqli_close($con);

    //Encode and send response as JSON (using the entity type as a parameter)
    //echo json_encode(array($entity => $json), JSON_FORCE_OBJECT);

    echo json_encode(array ($entity =>$json)); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-10 00:19:44

你的问题是mysqli_fetch_array。您希望将MYSQLI_ASSOC作为第二个参数传递。

代码语言:javascript
复制
while($row=mysqli_fetch_array($results,MYSQLI_ASSOC)){
    $json[]=$row;
}

From the docs:

此可选参数是一个常量,指示应从当前行数据生成哪种类型的数组。此参数的可能值为常量MYSQLI_ASSOC、MYSQLI_NUM或MYSQLI_BOTH。

通过使用MYSQLI_ASSOC常量,此函数的行为将与mysqli_fetch_assoc()相同,而MYSQLI_NUM的行为将与mysqli_fetch_row()函数相同。最后一个选项是MYSQLI_BOTH,它将创建一个具有这两个属性的数组。

票数 4
EN

Stack Overflow用户

发布于 2013-04-10 00:20:08

默认情况下,mysqli_fetch_array同时检索数字索引和命名索引。

您必须指定一个附加参数才能仅获取所需的参数。

  • MYSQLI_ASSOC检索已命名的数组,
  • MYSQLI_NUM仅检索索引的整数one
  • MYSQLI_BOTH检索两者:)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15907213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档