PHP-解码 JSON

2023-12-22

我有以下脚本从 API 获取搜索结果,然后对数组进行切片并转储它,我在将 JSON 解码为数组时遇到问题,它返回Array(0) { }这是一个 WordPress 简码

以下是从 api 获取的 Json 示例:

[
  {
    "barcode": "000015426950",
    "name": "Karen's cowboy",
    "author": "Ann",
    "author_last": "Martin",
    "publisher": "New York : Scholastic, c2000.",
    "year_pub": "",
    "edition": "",
    "genre": "",
    "checkout": "out",
    "series": "",
    "callnum": "MAR",
    "fiction": "true",
    "in_house": "false",
    "timestamp": "1355835387",
    "outto": "000008388615",
    "duedate": "1372005722",
    "ISBN": "059052528X",
    "media_type": "",
    "print": "false",
    "BOXID": "2147483647",
    "uid": "10",
    "printed": ""
  },
  {
    "barcode": "000015426949",
    "name": "Karen's yo-yo",
    "author": "Ann M",
    "author_last": "Martin",
    "publisher": "New York : Scholastic, c2000.",
    "year_pub": "",
    "edition": "",
    "genre": "",
    "checkout": "out",
    "series": "",
    "callnum": "MAR",
    "fiction": "true",
    "in_house": "false",
    "timestamp": "1355835343",
    "outto": "000008388615",
    "duedate": "1373216918",
    "ISBN": "0590525115",
    "media_type": "",
    "print": "false",
    "BOXID": "",
    "uid": "10",
    "printed": ""
  },
...
  }
]

以下是用于获取 JSON 并对其进行分页的代码:

function book_search_form() {
?>
<form method='get'><input type='text' name='searchvalue' value='<? if (isset($_GET['searchvalue'])) echo $_GET['searchvalue'];?>' />&nbsp;<input type='submit' value='Search' /><input type='hidden' name='pagenum' value='1' /></form>
<br>
<?php 
if(isset($_GET['pagenum']) && isset($_GET['searchvalue']))
{
$page=$_GET['pagenum'];
$searchvalue = $_GET['searchvalue'];   // get the value of the page from your url
$recordsPerPage=10; // number of records you want on your page
$api_url = get_option('api_url');
    $api_key = get_option('api_key');
    $data = file_get_contents("$api_url/book/index.php/name/$searchvalue?key=2513619352");
    $array = (array)json_decode($data);

$index=($page*$recordsPerPage)-1;
$recordsToBeDisplayed = array_slice($array,$index,$recordsPerPage);// this array contains all the records you would want to display on a page;



    $total_pages=ceil(count($array)/$recordsPerPage);
    }
else { 

//use default values

}
?>
<html>...<body><div id="records">
<?
echo '<pre>';
echo $recordsToBeDisplayed;
echo '</pre>';?><!-- use the array created above to display records -->
    </div>
<div id="pagination">
<?
for($j=1;$j<=$total_pages;$j++){
                    if($j==$page)
                   {?>

                   <li style="display: inline;"><a href="?searchvalue=&pagenum=<?=$j?>"><u><?=$j?></u></a></li>
                   <?}else{?>
                        <li style="display: inline;"><a href="?searchvalue=&pagenum=<?=$j?>"><?=$j?></a></li>


                   <?}}?>
</div>
<?php


}

Try json_解码 http://php.net/manual/en/function.json-decode.php

$array = json_decode($data, true);

然后你会得到一个数组而不是一个对象。

示例 #1 json_decode() 示例

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

上面的例子将输出:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP-解码 JSON 的相关文章

  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • 如何让Apache服务index.php而不是index.html?

    如果我将以下行放入index html文件 使 Apache 包含index php file 参观index html页面向我显示了这个 这是为什么 为什么它实际上不包含 PHP 文件 正如其他人指出的那样 您很可能没有 html设置为处
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for

随机推荐

  • 如何为 ListView 的 ContextActions 的 MenuItem 添加可见性绑定

    我正在尝试在选择任何列表视图项时显示上下文操作菜单项 我在那里添加了三个菜单项 但我需要绑定这些菜单项的可见性 根据选择 特定的菜单项应该可见 有没有办法在列表视图中添加 contextActions 菜单项的绑定 Since a Cont
  • 警告:没有为模块“Myproject”指定 JDK。在 Android studio 中运行我的项目时

    当我运行我的项目时 我发现该模块有错误 然后我点击发现错误 警告 没有为模块 Myproject 指定 JDK 当运行我的项目时 vI 设置JAVA HOME and JDK HOME在我的道路上 希望有人可以分享你的想法吗 当我删除jdk
  • 如何使用 Apache Ant 提取文件名的一部分?

    我想从 Ant 脚本外部生成的文件名中提取版本号 外部构建工具 PDE 构建 创建以下形式的文件artifactid 1 2 3 201101010101 jar在一个众所周知的目录中 但我无法事先告知版本控制信息 我需要提取版本部分 1
  • 如何根据索引向量求和

    我有 3 个向量 一个和向量 一个贡献向量和一个值向量 我想根据它们的贡献向量对值向量进行求和 并将它们放在和向量中相应的索引中 一个例子是 A 0 0 sum vector B 0 0 1 1 contribution vector C
  • CodeBlocks、GCC:更改项目语言 c 和 c++?

    当我选择开始控制台项目时 它允许您选择 C 或 C 但一旦创建 我不知道如何更改它 另外 当您创建 Win32 GUI 应用程序时 它根本不提供该选项 并且其默认值为 C 哪里可以改成C 我多年来一直在寻找所有项目设置 将我的文件重命名为
  • OpenCart:如何创建全局变量?

    我正在尝试在 OpenCart 中创建两个全局变量 我基本上希望能够在我的任何 tpl files 我尝试过编辑 library system php并且config php通过增加 global1 test 在我的文件中 然而调用它 tp
  • CMake 中 OpenSSL Crypto 的静态链接

    我需要为 MIPS 设备制作交叉编译的 OpenSSL 我尝试按照文档进行操作 放OPENSSL USE STATIC LIBS为 true 并设置target link libraries到您需要的库文件 CMakeLists txt c
  • elasticsearch.ElasticsearchException:标语无效或丢失(OpenSearch)

    从 Elasticsearch 迁移到 AWS OpenSearch 后 通过调用 OpenSearch 时出现以下错误Elasticsearch Rest High Level Client elasticsearch Elasticse
  • 如何删除谷歌图表中的默认错误消息

    如何删除谷歌图表中显示的默认错误 如下所示 要删除谷歌错误 请听 error 图表或其他对象上的事件 当事件被触发时 使用google visualization errors removeError 这里 我故意造成错误 将其从googl
  • driver.manage.wait(long timeout) 和显式等待之间的区别

    谁能说出以下的区别 driver manage wait long timeout and WebDriverWait wait new WebDriverWait driver WAIT IN SECONDS 明确等待 了解我未来的参考
  • 匹配 uuid.uuid4().hex 生成的值的正确正则表达式是什么?

    如何验证某个值是否等于此代码生成的 UUID4 uuid uuid4 hex 它应该是一些正则表达式吗 由以下形式的 32 个字符长的字符串生成的值 60e3bcbff6c1464b8aed5be0fce86052 据我所知 Martijn
  • 创建资源文件以在 Qt Designer 中使用它

    我想向小部件添加背景图像 因此我需要一个资源文件 但我无法在 Qt Designer 中创建它 这是我所做的 从小部件中 我进入资源浏览器并单击 添加新文件 按钮 然后弹出一个新窗口 系统要求我指向 qrc 文件 但该文件不存在 而且我不知
  • Swift 元组到可选赋值

    我正在用 Swift 编写一些代码来学习该语言 这是我的基类 import Foundation class BaseCommand NSOperation var status Int nil var message String nil
  • 截断字符串,但删除字符串的中间而不是结尾

    我想出了这个函数 它将给定的字符串截断为给定的单词数或给定的字符数 以较短者为准 然后 在截掉字符数或字数限制之后的所有内容后 它会在字符串中附加一个 如何从字符串中间删除字符 单词并将其替换为 而不是用 替换末尾的字符 单词 这是我的代码
  • 自动滚动不适用于 vbox 布局

    我需要将表单面板居中对齐 所以我使用了vbox布局 使用后自动滚动不再像以前那样工作 代码如下 Usr VWPanel Ext extend Ext Panel id null rid null closable true autoScro
  • 无法访问类 jdk.xml.internal.JdkXmlUtils

    我正在更新 hybris SAP Commerce 2005 的旧公司实习生扩展 它是使用 API 的扩展 我不知道这个扩展有多少年了 然而 当将它应用到java 11时 我发现了这样的问题 Java 11 导入 javax xml ws
  • 编写 Jena 内置函数

    我正在尝试写一个耶拿内置 http jena apache org documentation inference RULEbuiltins从给定的算法返回一个值 然后与该值进行比较 例如 String rule exRule d rdf
  • 最好的 Python Cassandra 库/包装器? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 I found lazyboy https github com digg lazyboy and pycassa https github c
  • 需要密码才能禁用 Android 设备管理员

    我正在考虑一个具有设备管理员权限的安全应用程序 我想看看当用户尝试在 设置 gt 安全 gt 设备管理员 下以管理员身份取消选中该应用程序时 是否可能需要密码 这将增加一个障碍 不允许用户轻易卸载应用程序 因为他们首先需要从应用程序中删除管
  • PHP-解码 JSON

    我有以下脚本从 API 获取搜索结果 然后对数组进行切片并转储它 我在将 JSON 解码为数组时遇到问题 它返回Array 0 这是一个 WordPress 简码 以下是从 api 获取的 Json 示例 barcode 000015426