当前位置: 首页 > 知识库问答 >
问题:

get返回的json字符串,我通过php json_encode后,如何取值?

蓝昊天
2023-11-23

json字符串如下:

{    "headers": {        "Content-Type": ["application\/json;charset=utf-8"],        "Content-Length": ["110"],    },    "statusCode": 200}

我通过 $json=json_encode(上面的返回字符串);
我如何取statusCode的值?
我用$json['statusCode']返回500错误: "message": "Cannot access offset of type string on string"

共有3个答案

公西国发
2023-11-23

➜ ~ cat test/a.php

<?php$json = json_decode('{    "headers": {        "Content-Type": ["application\/json;charset=utf-8"],        "Content-Length": ["110"]    },    "statusCode": 200}', true);print_r($json['statusCode']);

➜ ~ php test/a.php
200%

宇文念
2023-11-23

encode 是把对象编码为字符串,对字符串编码那不还是字符串嘛。
你应该使用 json_decode

胡玉书
2023-11-23

要从 JSON 字符串中获取 statusCode 的值,你需要首先确保你的 JSON 字符串已经被解码为 PHP 对象或数组。json_encode() 函数用于将 PHP 对象或数组转换为 JSON 字符串,而 json_decode() 函数用于将 JSON 字符串解码为 PHP 对象或数组。

在你的例子中,$json 是一个字符串,所以当你尝试用 $json['statusCode'] 去获取值时,PHP 解释器会抛出错误,因为你不能在字符串上使用数组索引。

你需要用 json_decode() 函数将 $json 字符串解码为 PHP 对象或数组,然后才能获取 statusCode 的值。以下是一个例子:

$json = '{"headers": {"Content-Type": ["application\/json;charset=utf-8"],"Content-Length": ["110"]},"statusCode": 200}';$data = json_decode($json);echo $data->statusCode;  // 输出:200

在这个例子中,json_decode() 函数将 $json 字符串解码为一个 PHP 对象,然后我们可以通过 $data->statusCode 来获取 statusCode 的值。如果你的 JSON 包含嵌套的数组或对象,你可以通过这种方式来访问它们的值。

 类似资料:
  • 问题内容: 为了使进度报告过程更加可靠,并使它与请求/响应脱钩,我正在Windows Service中执行处理,并将预期的响应持久化到文件中。当客户端开始轮询更新时,其目的是控制器以JSON字符串形式返回文件的内容(无论它们是什么)。 该文件的内容已预序列化为JSON。这是为了确保在响应过程中没有任何阻碍。无需进行任何处理(只需将文件内容读入字符串并返回)即可获得响应。 我最初虽然很简单,但事实并

  • 问题内容: 我正在开发一个使用JSON进行服务器通信的Android应用,当我尝试解析json文件时遇到了一个奇怪的问题。 这是我来自服务器的json 我通过调用地址Json-object 获得City的价值。对于这种情况,我期望为空(这是optString的意思吗?),但实际上它包含字符串“ null”。因此,进一步的null或isEmpty- checks将返回false,因为String包含

  • 我有如下json格式 我想从中过滤名称,数组名称=[name1, name2] 我已经尝试过在这里 http://gotoanswer.com/?q=How 在JAVA中解析此JSON响应 然后成功。 但是我怎样才能动态地将json格式从响应转换成字符串,这样我就可以输入到字符串jsonString了。

  • 问题内容: 我正在执行上面的存储过程。我收到以下错误: 消息245,级别16,状态1,过程S_Comp,第8行在将varchar值“存在的Amruthanot”转换为数据类型int时,转换失败。 请帮我解决这个问题 问题答案: 您将结果放在值中,而不是传递的值中。 从MSDN (返回) 是 返回 的整数值。存储过程可以将整数值返回到调用过程或应用程序。 更改您的程序。 调用程序

  • 我正在开发一个使用JSON进行服务器通信的Android应用程序,当我试图解析我的json文件时,我遇到了一个奇怪的问题。 这是来自服务器的json 我通过调用字符串City=address来获取City的值。我的地址Json对象上的optString(“city”,“”)。对于这种情况,我希望城市是空的(这就是optString在这里的目的,不是吗?)但实际上它包含字符串“null”。因此,进一

  • 我有一个Spring MVC控制器,方法如下: 它位于一个开始如下所示的控制器内部: 我使用的是Spring WebMVC 4.1.3和Jackson 2.4.3。我尝试在RequestMapping中添加一个“produces”属性,表示它应该返回JSON。在本例中,发回的Content-Type属性是“application/json”,但仍然没有引用测试字符串。 我可以通过调用JSON库将J