如何在 Laravel 中接收单引号 JSON
Posted
技术标签:
【中文标题】如何在 Laravel 中接收单引号 JSON【英文标题】:How to receive single quote JSON in Laravel 【发布时间】:2018-05-23 19:24:54 【问题描述】:我正在编写一个 API 来使用来自另一个 3rd 方应用程序 (RapidPro) 的数据。可悲的是,第三方应用程序将其 JSon 用单引号括起来,Laravel 似乎无法理解,当我返回 $request
对象时,我得到一个空数组 []。
有什么办法可以接受带有单引号的 JSon,因为我不可能更改第三方 API?
要解析的 JSon 是这个:
'contact':
'uuid': 'e65ef92b-24ce-459b-a8fd-beb042330eb0',
'name': 'UserName',
'urn': 'tel: +12000000000'
,
'flow':
'name': 'MyFlow',
'uuid': 'da5d6c42-a818-481b-b91c-e9622dafe8be'
,
'path': [],
'results': ,
'run':
'uuid': '2a2f709f-d114-413c-a865-d960cea73981',
'created_on': '2018-05-23T19: 06: 03.308191+00: 00'
,
'input':
'urn': 'tel: +12000000100',
'text': 'What I wanna say',
'attachments': []
我在接收 API 调用时使用以下路由,它可以工作并将其带到控制器:
Route::post('sms', 'UserController@sms')->name('sms.store');
此演示的 SMS 控制器让我们将其写入本地文件并将结果发回以在 Insomnia 中查看演示调用:
public function sms(Request $request)
Storage::put('sms.txt', $request);
return $request;
当我通过 Insomnia 将 JSON 发布到我的服务器时,我得到一个空响应,但是当我使用双引号时;发布的 JSON 被很好地退回。
【问题讨论】:
给他们看json.org @Kyslik 让他们遵守标准? 你能给我们看一些代码吗?单引号应该没有问题。 @GonrasKarols 让我编辑问题以添加路线和控制器。 【参考方案1】:事实证明,在 RapidPro 调试器中,json 使用单引号显示,但在实际 POST 中它使用双引号。我错的是AUTH。我必须为 Laravel 的 Basic Once 身份验证添加一些标头。
【讨论】:
以上是关于如何在 Laravel 中接收单引号 JSON的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript 函数中使用单引号(撇号)转义 JSON 值
如何转义json字符串中的单引号? JSON::ParserError Ruby