无法解码有效的 json 格式,响应内容必须是实现 __toString() 的字符串或对象,给定的“对象”
Posted
技术标签:
【中文标题】无法解码有效的 json 格式,响应内容必须是实现 __toString() 的字符串或对象,给定的“对象”【英文标题】:cannot decode valid json format, The Response content must be a string or object implementing __toString(), "object" given 【发布时间】:2017-10-21 12:09:04 【问题描述】:我有一个有效的 json 格式 "active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null
但是,当我尝试解码它时,它返回错误
响应内容必须是字符串或对象,实现__toString(),“object”给定。
我错过了什么吗?
【问题讨论】:
我确认这是一个有效的 json。也许您错误地调用了解码器。能贴出对应的java代码吗? 将您的 json 函数包装在'
中,结果使用 $json = '"active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null'
。注意打开和关闭。那么你可以拨打json_decode($json)
我使用 php json _decoder。我将该字符串保存在一个变量中,然后调用它 json_decoder($a)
。然后发生错误@Elektordi
已经这样做了,它返回相同的错误@PeymanSeraj
你能展示一下你的代码吗?您是否从第三台服务器获得结果?如果是,您可以 dd($result) 并向我们展示结果吗?
【参考方案1】:
将您的 json 函数包装在 '
中。因此使用 $json = '"active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null'
。
注意开合。然后你可以调用 json_decode($json)
这是artisan tinker的完整结果:
>>> $json = '"active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null'
=> ""active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null"
>>> json_decode($json);
=> #869
+"active": "false",
+"period": "23-05-2017 to 25-05-2017",
+"percentage": null,
+"value": null,
+"status": "inc",
+"fixed_price": null,
【讨论】:
idk 为什么,但是,当我调用函数example(return json_decode('"active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null'))
时它会出错,但是当我这样调用它时 $result = example(return json_decode('"active":"false","period":"23-05-2017 to 25-05-2017","percentage":null,"value":null,"status":"inc","fixed_price":null'))
它可以工作.. 无论如何,谢谢
示例是您的功能吗?你的意思是当你直接调用它时它不起作用但是当你将它存储在一个 $result
变量中时它会起作用吗?
你能不能删除return
再检查一下。 json_decode
无论如何都会在没有return
的情况下返回结果。如果你dd(json_decode($json)
你应该有结果。和$result = json_decode($json)
然后dd($result)
没有区别。以上是关于无法解码有效的 json 格式,响应内容必须是实现 __toString() 的字符串或对象,给定的“对象”的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Codable 解码具有更改键的 json 响应?