php - JSON格式为字符串,转换为php数组?

标签 php mysql arrays json

我有一个 JSON 字符串,存储在 MYSQL 数据库中。示例:

stdClass Object (
[product] => stdClass Object
    (
        [sold_individually] => 
        [regular_price] => 
        [managing_stock] => 1
        [sku] => 0001
        [title] => Sample title
        [reviews_allowed] => 1...

等等

我使用utf8_encode()来转换它。我怎样才能将其转换为 PHP 数组以便我可以使用它?

编辑 1

我现在在发布到数据库时使用了 json_encode() 。我还必须使用 addSlashes(),因为我遇到了一些值的格式问题。

当我现在提取数据时,它看起来像:

"{\"product\": {\"sold_individually\": false, \"regular_price\": \"\", \"managing_stock\": true, \"sku\": \"W-C-6500\", \"title\": \"Sample title\"...

如何提取“title”的值?我还应该使用 str_replace() 来消除\问题吗?

最佳答案

你打印的不是 JSON,我认为它是 php 对象的字符串表示形式。因此,如果可能的话,您应该将实际的 JSON 存储到数据库中。它更简单、更干净、更紧凑。

为此,请使用 json_encode($your_object) 将数据插入数据库中。

要检索它,请使用 json_decode($string_from_database)。

这应该像一个魅力。

注意: 但有一个陷阱,默认情况下,json_decode 将创建一个 php 对象而不是一个数组。因此,您必须将字段作为对象的属性进行检索:

$data = json_decode($string_from_database);
$data->product->title; // to access title in your data structure

但是如果你想要一个数组,你可以提供一个参数来获取一个数组,然后它的工作原理如下:

$data = json_decode($string_from_database, true);
$data['product']['title']; // to access title in your data structure

查看 json_decode 的 php 文档以获取更多信息!

http://php.net/manual/fr/function.json-decode.php

关于php - JSON格式为字符串,转换为php数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989098/

相关文章:

C++,指针数组,指向双向链表中的条目

php - (Laravel) 基于用户输入的接口(interface)动态依赖注入(inject)

PHP:在mysql查询后获取记录

MySQL从订单中连接查询位置

php - 如何在php中获取sql数据库查询的最大值

javascript - 使用变量串联调用函数

c++ - 如何将大量数字合并到 C++ 代码中

php - foreach 循环图像水平显示

php - 如何使用 php 将表单和三个 mysql 表中的数据合并到另一个表中插入数据?

html文本输入值不会显示完整值,因为“在它的中间