【问题标题】:How I can get my array result without quotes如何在没有引号的情况下获得数组结果
【发布时间】:2019-10-06 18:56:07
【问题描述】:

我在表中获取我的数据我有一个存储为我想要的字符串的数组当我获取这些数据时我没有用 '""' 得到它,第二个问题我用 slaches 得到它!像 fonctionnalites。 这是我得到的

  {
        "id": 1,
        "icon": "/lsapp/public/projects/icon/1558102023logoMazad.png",
        "descriptions": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ",
        "fonctionnalites": "[\"CreativeDesign\",\"RetinaReady\",\"ModernDesign\",\"DigitalMarketingBranding\",\"rcveq\"]",
        "screenshoot": "[\"/lsapp/public/projects/screenshoot/1558102023mazad1.png\",\"/lsapp/public/projects/screenshoot/1558102023mazad2.png\",\"/lsapp/public/projects/screenshoot/1558102023mazad3.png\",\"/lsapp/public/projects/screenshoot/1558102023mazad4.png\"]",
    },

我想像这样得到它

  {
        "id": 1,
        "icon": "/lsapp/public/projects/icon/1558102023logoMazad.png",
        "descriptions": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ",
        "fonctionnalites": ["CreativeDesign","RetinaReady","ModernDesign","DigitalMarketingBranding","rcveq"],
        "screenshoot": ["/lsapp/public/projects/screenshoot/1558102023mazad1.png\","/lsapp/public/projects/screenshoot/1558102023mazad2.png","/lsapp/public/projects/screenshoot/1558102023mazad3.png","/lsapp/public/projects/screenshoot/1558102023mazad4.png"],
    },

这就是我为得到结果而做的事情

public function getproject(Request $request)
{
    $services = WebProjects::all();
    return response()->json($services);
}

【问题讨论】:

  • 你的意思是没有斜线吧?
  • 没有 slaches 和引号,这就是我得到“fonctionnalites”的方式:“[\”CreativeDesign\”,\“RetinaReady\”,\“ModernDesign\”,\“DigitalMarketingBranding\”,\“rcveq \"]",这就是我想要获得“fonctionnalites”的方式:["CreativeDesign","RetinaReady","ModernDesign","DigitalMarketingBranding","rcveq"],
  • @Cid 以我想要的方式存储
  • fonctionnalitesscreenshoot 列的数据类型是什么? varchar?
  • 你能从数据库中显示你的纯数据吗?

标签: php arrays laravel laravel-5 laravel-5.5


【解决方案1】:

您的成员fonctionnalitesscreenshoot 似乎已经进行了json 编码。

// in this example, the sub array "toto" is an encoded array
$arr = ["foo" => "bar", "toto" => json_encode(["forty", "two"])];
echo json_encode($arr); // outputs : {"foo":"bar","toto":"[\"forty\",\"two\"]"}

您可以先对其进行解码,然后再重新编码整个数组/对象

$arr = ["foo" => "bar", "toto" => json_encode(["forty", "two"])];
echo json_encode($arr); //{"foo":"bar","toto":"[\"forty\",\"two\"]"}

$arr["toto"] = json_decode($arr["toto"]);
echo json_encode($arr); //{"foo":"bar","toto":["forty","two"]}

【讨论】:

    【解决方案2】:

    试试这个:

    return response()->json($services, 200, [], JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
    

    如果数据库中有未编码的字符串数据。

    Reference to json flag 以及如何flags are used in Laravel

    顺便说一句,Laravel understands 当 Collection 作为响应返回并序列化它时,你可以直接使用 return $services;

    P。 S. 看看Cid's answer,如果您的数据已经编码并作为字符串存储在数据库中。

    【讨论】:

    • 我得到了同样的结果
    • 你有强制转换到模型中的数组吗?是否定义了任何访问器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2022-01-11
    • 2012-10-11
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多