我有一个 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 文档以获取更多信息!
关于php - JSON格式为字符串,转换为php数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989098/