【发布时间】:2020-05-12 10:54:56
【问题描述】:
我有一个需要解码的 JSON 文件,因为它有 {"Text",然后是我发送的实际消息,在我的数据库中它存储在 "content" 下。我正在尝试对其进行解码以在我的表中包含干净的数据。
我试图让我的控制器对其进行解码,但它似乎没有做任何事情,也没有给我一个错误。我附上了一张照片,所以你可以明白我的意思。我的控制器没有出现任何错误,但它似乎也没有任何效果。我需要在我的控制器中定义变量内容,但是如果我从返回视图详细信息,消息 => $message 更改为详细信息,内容 => 内容我得到非对象错误(因为解码它现在是一个数组)。
我的控制器:
<?php
namespace App\Http\Controllers;
use App\Message;
use App\Suggestion;
use Carbon\Carbon;
use Google\Auth\ApplicationDefaultCredentials;
use Google\Cloud\PubSub\PubSubClient;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Storage;
use Propaganistas\LaravelPhone\PhoneNumber;
class DetailsController extends BaseController
{
public function index($id)
{
$message = Message::find($id);
$content = json_decode($message->content,TRUE);
return view('details', ['message' => $message]);
}
}
`
我的 Blade 文件只是一个表格,其中最重要的部分是:
<td>{{$message->type}}</td>
<td>{{$message->content}}</td>
<td>{{$message->response}}</td>
<td>{{$message->id}}</td>
一旦我可以将它转换成一个数组,我就可以将它分解成更可敬的列,我附上了 UI 的图像,这样你就可以看到我正在尝试做什么
【问题讨论】:
-
什么在起作用/什么不起作用/你想做什么?
-
我会整理我的问题,我想解码 JSON 文件,以便它显示表格内的数据分隔而不是所有的 { 和 [
-
这行
$body = json_decode($response->getBody(),true);有问题吗?$response->getBody()部分似乎是错误的,这些数据来自哪里?您在此之前的行上有一个return,因此不会执行此代码。 -
我认为这就是问题所在,数据来自 Google API,它创建 JSON 并将其存储在我通过 XAMPP 托管的 MYSQL DB 中,表是 Messages 并且有一个名为内容的字段,这是值的来源
-
我需要做的是将它们从数据库中提取出来,例如:"{"text":"message","suggestions":[{"reply":{"text": "test"}",解码为消息,测试