{"id":1111,"date":"2025-06-12T13:13:15","date_gmt":"2025-06-12T05:13:15","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1111.html"},"modified":"2025-06-12T13:13:15","modified_gmt":"2025-06-12T05:13:15","slug":"%e5%ad%98%e5%82%a8json%e6%95%b0%e6%8d%ae%e7%9a%84%e7%90%86%e8%ae%ba%ef%bc%9a%e5%a6%82%e4%bd%95%e5%ad%98%e5%82%a8json%e6%95%b0%e6%8d%ae","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1111.html","title":{"rendered":"\u5b58\u50a8JSON\u6570\u636e\u7684\u7406\u8bba\uff1a\u5982\u4f55\u5b58\u50a8JSON\u6570\u636e"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#23384;&#20648;JSON&#25968;&#25454;&#26159;&#29616;&#20195;&#36719;&#20214;&#24320;&#21457;&#20013;&#30340;&#24120;&#35265;&#38656;&#27714;&#65292;&#23427;&#20801;&#35768;&#25105;&#20204;&#20197;&#19968;&#31181;&#32467;&#26500;&#21270;&#30340;&#26041;&#24335;&#32452;&#32455;&#21644;&#20256;&#36755;&#25968;&#25454;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#22522;&#26412;&#30340;&#27493;&#39588;&#21644;&#27880;&#24847;&#20107;&#39033;&#65292;&#24110;&#21161;&#20320;&#22312;&#19981;&#21516;&#30340;&#32534;&#31243;&#35821;&#35328;&#20013;&#23384;&#20648;JSON&#25968;&#25454;&#12290;<\/p>\n<h3>1. &#23450;&#20041;JSON&#32467;&#26500;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#30830;&#23450;&#20320;&#35201;&#23384;&#20648;&#30340;&#25968;&#25454;&#31867;&#22411;&#21644;&#26684;&#24335;&#12290;JSON&#26159;&#19968;&#31181;&#36731;&#37327;&#32423;&#30340;&#25968;&#25454;&#20132;&#25442;&#26684;&#24335;&#65292;&#26131;&#20110;&#20154;&#38405;&#35835;&#21644;&#32534;&#20889;&#65292;&#21516;&#26102;&#20063;&#26131;&#20110;&#26426;&#22120;&#35299;&#26512;&#21644;&#29983;&#25104;&#12290;&#24120;&#35265;&#30340;JSON&#25968;&#25454;&#31867;&#22411;&#21253;&#25324;&#23545;&#35937;&#65288;object&#65289;&#12289;&#25968;&#32452;&#65288;array&#65289;&#12289;&#23383;&#31526;&#20018;&#65288;string&#65289;&#12289;&#25968;&#23383;&#65288;number&#65289;&#31561;&#12290;<\/p>\n<pre><code class=\"language-json\">{\n  \"name\": \"John Doe\",\n  \"age\": 30,\n  \"isStudent\": false,\n  \"courses\": [\"Math\", \"Science\"]\n}<\/code><\/pre>\n<h3>2. &#20351;&#29992;&#32534;&#31243;&#35821;&#35328;&#23384;&#20648;JSON&#25968;&#25454;<\/h3>\n<h4>Python &#31034;&#20363;<\/h4>\n<p>&#22312;Python&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>json<\/code>&#27169;&#22359;&#26469;&#22788;&#29702;JSON&#25968;&#25454;&#12290;<\/p>\n<pre><code class=\"language-python\">import json\n\n# &#21019;&#24314;&#19968;&#20010;&#23383;&#20856;\ndata = {\n    \"name\": \"John Doe\",\n    \"age\": 30,\n    \"isStudent\": False,\n    \"courses\": [\"Math\", \"Science\"]\n}\n\n# &#23558;&#23383;&#20856;&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;\njson_string = json.dumps(data)\n\nprint(json_string)<\/code><\/pre>\n<p>&#36755;&#20986;&#65306;<\/p>\n<pre><code class=\"language-json\">{\"name\": \"John Doe\", \"age\": 30, \"isStudent\": false, \"courses\": [\"Math\", \"Science\"]}<\/code><\/pre>\n<h4>JavaScript &#31034;&#20363;<\/h4>\n<p>&#22312;JavaScript&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20869;&#32622;&#30340;<code>JSON.stringify()<\/code>&#26041;&#27861;&#23558;&#23545;&#35937;&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;&#12290;<\/p>\n<pre><code class=\"language-javascript\">\/\/ &#21019;&#24314;&#19968;&#20010;&#23545;&#35937;\nlet data = {\n    name: \"John Doe\",\n    age: 30,\n    isStudent: false,\n    courses: [\"Math\", \"Science\"]\n};\n\n\/\/ &#23558;&#23545;&#35937;&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;\nlet jsonString = JSON.stringify(data);\n\nconsole.log(jsonString);<\/code><\/pre>\n<p>&#36755;&#20986;&#65306;<\/p>\n<pre><code class=\"language-json\">{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"courses\":[\"Math\",\"Science\"]}<\/code><\/pre>\n<h4>Java &#31034;&#20363;<\/h4>\n<p>&#22312;Java&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>org.json<\/code>&#24211;&#23558;&#23545;&#35937;&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;&#12290;<\/p>\n<pre><code class=\"language-java\">import org.json.JSONObject;\n\npublic class Main {\n    public static void main(String[] args) {\n        \/\/ &#21019;&#24314;&#19968;&#20010;JSONObject\n        JSONObject data = new JSONObject();\n        data.put(\"name\", \"John Doe\");\n        data.put(\"age\", 30);\n        data.put(\"isStudent\", false);\n        data.put(\"courses\", new String[]{\"Math\", \"Science\"});\n\n        \/\/ &#23558;JSONObject&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;\n        String jsonString = data.toString();\n\n        System.out.println(jsonString);\n    }\n}<\/code><\/pre>\n<p>&#36755;&#20986;&#65306;<\/p>\n<pre><code class=\"language-json\">{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"courses\":[\"Math\",\"Science\"]}<\/code><\/pre>\n<h3>3. &#22788;&#29702;JSON&#25968;&#25454;<\/h3>\n<p>&#22312;&#22788;&#29702;JSON&#25968;&#25454;&#26102;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#36827;&#34892;&#19968;&#20123;&#25805;&#20316;&#65292;&#20363;&#22914;&#35299;&#26512;JSON&#23383;&#31526;&#20018;&#12289;&#25552;&#21462;&#29305;&#23450;&#23383;&#27573;&#12289;&#26356;&#26032;&#25968;&#25454;&#31561;&#12290;<\/p>\n<h4>&#35299;&#26512;JSON&#23383;&#31526;&#20018;<\/h4>\n<pre><code class=\"language-python\">import json\n\n# &#20551;&#35774;&#20320;&#26377;&#19968;&#20010;JSON&#23383;&#31526;&#20018;\njson_string = '{\"name\": \"John Doe\", \"age\": 30, \"isStudent\": false, \"courses\": [\"Math\", \"Science\"]}'\n\n# &#23558;JSON&#23383;&#31526;&#20018;&#35299;&#26512;&#20026;&#23383;&#20856;\ndata = json.loads(json_string)\n\nprint(data[\"name\"])  # &#36755;&#20986;: John Doe<\/code><\/pre>\n<h4>&#25552;&#21462;&#29305;&#23450;&#23383;&#27573;<\/h4>\n<pre><code class=\"language-python\">import json\n\n# &#20551;&#35774;&#20320;&#26377;&#19968;&#20010;JSON&#23383;&#31526;&#20018;\njson_string = '{\"name\": \"John Doe\", \"age\": 30, \"isStudent\": false, \"courses\": [\"Math\", \"Science\"]}'\n\n# &#23558;JSON&#23383;&#31526;&#20018;&#35299;&#26512;&#20026;&#23383;&#20856;\ndata = json.loads(json_string)\n\n# &#25552;&#21462;&#29305;&#23450;&#23383;&#27573;\nname = data.get(\"name\")\nage = data.get(\"age\")\n\nprint(f\"Name: {name}, Age: {age}\")  # &#36755;&#20986;: Name: John Doe, Age: 30<\/code><\/pre>\n<h4>&#26356;&#26032;&#25968;&#25454;<\/h4>\n<pre><code class=\"language-python\">import json\n\n# &#20551;&#35774;&#20320;&#26377;&#19968;&#20010;JSON&#23383;&#31526;&#20018;\njson_string = '{\"name\": \"John Doe\", \"age\": 30, \"isStudent\": false, \"courses\": [\"Math\", \"Science\"]}'\n\n# &#23558;JSON&#23383;&#31526;&#20018;&#35299;&#26512;&#20026;&#23383;&#20856;\ndata = json.loads(json_string)\n\n# &#26356;&#26032;&#25968;&#25454;\ndata[\"age\"] = 31\n\n# &#23558;&#26356;&#26032;&#21518;&#30340;&#23383;&#20856;&#36716;&#25442;&#22238;JSON&#23383;&#31526;&#20018;\nupdated_json_string = json.dumps(data)\n\nprint(updated_json_string)<\/code><\/pre>\n<p>&#36755;&#20986;&#65306;<\/p>\n<pre><code class=\"language-json\">{\"name\":\"John Doe\",\"age\":31,\"isStudent\":false,\"courses\":[\"Math\",\"Science\"]}<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#21644;&#31034;&#20363;&#20195;&#30721;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#25104;&#21151;&#22320;&#23384;&#20648;&#21644;&#22788;&#29702;JSON&#25968;&#25454;&#12290;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#65292;&#36873;&#25321;&#36866;&#21512;&#30340;&#32534;&#31243;&#35821;&#35328;&#21644;&#24037;&#20855;&#26469;&#23454;&#29616;&#36825;&#19968;&#30446;&#26631;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;&#19982;&#29616;&#20195;Web&#24212;&#29992;&#31243;&#24207;&#20132;&#20114;&#26102;&#65292;&#24744;&#19981;&#21487;&#36991;&#20813;&#22320;&#20250;&#28041;&#21450;JSON&#65292;&#36825;&#26159;&#19968;&#31181;&#29992;&#20110;&#23384;&#20648;&#21644;&#20256;&#36755;&#25968;&#25454;&#30340;&#36731;&#37327;&#32423;&#26684;&#24335;&#12290;Doctrine&#65292;&#19968;&#20010;&#24191;&#27867;&#29992;&#20110;&#26694;&#26550;&#22914;Symfony&#30340;PHP&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;&#65292;&#25552;&#20379;&#20102;&#22788;&#29702;&#25968;&#25454;&#24211;&#30340;&#24378;&#22823;&#25903;&#25345;&#12290;&#28982;&#32780;&#65292;&#20351;&#29992;Doctrine&#26469;&#23384;&#20648;&#21644;&#26597;&#35810;JSON&#25968;&#25454;&#24182;&#19981;&#36866;&#21512;&#25152;&#26377;&#20154;&#12290;&#26412;&#25945;&#31243;&#23558;&#25351;&#23548;&#24744;&#36890;&#36807;&#24517;&#35201;&#30340;&#27493;&#39588;&#39640;&#25928;&#22320;&#22788;&#29702;JSON&#25968;&#25454;&#12290;<\/p><h3>&#29702;&#35299;JSON&#21644;Doctrine<\/h3><p>JSON&#65288;JavaScript &#23545;&#35937;&#34920;&#31034;&#27861;&#65289;&#26159;&#19968;&#31181;&#26131;&#20110;&#20154;&#31867;&#38405;&#35835;&#21644;&#32534;&#20889;&#12289;&#30001;&#26426;&#22120;&#35299;&#26512;&#21644;&#29702;&#35299;&#30340;&#25968;&#25454;&#20132;&#25442;&#26684;&#24335;&#12290;Doctrine ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#20351;&#24471;PHP&#23545;&#35937;&#19982;&#25968;&#25454;&#24211;&#35760;&#24405;&#20043;&#38388;&#30340;&#26144;&#23556;&#21464;&#24471;&#31616;&#21333;&#12290;&#29616;&#20195;&#25968;&#25454;&#24211;&#65292;&#22914;PostgreSQL &#21644;MySQL&#65292;&#25903;&#25345;JSON&#25968;&#25454;&#31867;&#22411;&#65307;&#36825;&#20801;&#35768;&#25105;&#20204;&#23384;&#20648;JSON&#26684;&#24335;&#30340;&#23383;&#31526;&#20018;&#24182;&#39640;&#25928;&#22320;&#26597;&#35810;&#23427;&#20204;&#12290;<\/p><h2>&#35774;&#32622;&#29615;&#22659;<\/h2><p>&#22312;&#24320;&#22987;&#20351;&#29992;JSON&#23384;&#20648;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#32463;&#28385;&#36275;&#20197;&#19979;&#21069;&#25552;&#26465;&#20214;&#65306;<\/p><p>&#25903;&#25345;JSON&#25968;&#25454;&#31867;&#22411;&#30340;&#25968;&#25454;&#24211;&#65292;&#20363;&#22914;MySQL 5.7+&#25110;PostgreSQL 9.4+&#12290;<\/p><p>&#19968;&#20010;&#23433;&#35013;&#20102;Doctrine ORM&#30340;Symfony&#39033;&#30446;<\/p><p>&#20351;&#29992; PHP 7.2 &#25110;&#26356;&#39640;&#29256;&#26412;&#12290;<\/p><p>&#22914;&#26524;&#20320;&#27491;&#22312;&#24320;&#22987;&#19968;&#20010;&#26032;&#30340;Symfony&#39033;&#30446;&#65292;&#20351;&#29992;Composer&#36827;&#34892;&#35774;&#32622;&#65292;&#24182;&#22312;&#32487;&#32493;&#20043;&#21069;&#30830;&#20445;&#24050;&#32463;&#37197;&#32622;&#22909;&#20102;.env&#25991;&#20214;&#20013;&#30340;&#25968;&#25454;&#24211;&#20973;&#35777;&#12290;<\/p><h2>&#23450;&#20041;&#23454;&#20307;<\/h2><p>&#20026;&#20102;&#22312;Doctrine&#20013;&#23384;&#20648;JSON&#25968;&#25454;&#65292;&#24744;&#38656;&#35201;&#39318;&#20808;&#23450;&#20041;&#19968;&#20010;&#23454;&#20307;&#65292;&#24182;&#20351;&#29992;JSON&#31867;&#22411;&#21015;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>use DoctrineORMMapping as ORM;\n\/**\n * @ORMEntity\n * @ORMTable(name=\"sample_table\")\n *\/\n class SampleEntity\n {\n     \/**\n      * @ORMColumn(type=\"json\")\n      *\/\n     private $data;\n\n     \/\/ ... getters and setters ...\n }<\/code><\/pre><p>&#36825;&#20010;&#23454;&#20307;&#23558;&#22312;&#24744;&#30340;&#25968;&#25454;&#24211;&#34920;&#20013;&#26144;&#23556;&#65292;&#23383;&#27573;&#21517;&#20026;<code>data<\/code>&#19987;&#27880;&#20110;&#23384;&#20648;JSON&#12290;<code>@ORMColumn(type=\"json\")<\/code>&#27880;&#35299;&#35753;Doctrine&#30693;&#36947;&#22312;&#25968;&#25454;&#24211;&#20013;&#22788;&#29702;&#36825;&#20010;&#23383;&#27573;&#26102;&#23558;&#20854;&#35270;&#20026;JSON&#31867;&#22411;&#12290;<\/p><h2>&#25554;&#20837;JSON&#25968;&#25454;<\/h2><p>&#29616;&#22312;&#65292;&#35753;&#25105;&#20204;&#30475;&#30475;&#22914;&#20309;&#21521;&#23383;&#27573;&#25554;&#20837;JSON&#25968;&#25454;&#65306;<\/p><pre><code>$sampleEntity = new SampleEntity();\n$sampleEntity-&gt;setData([\n    'key' =&gt; 'value',\n    'another_key' =&gt; 'another value'\n]);\n\n$entityManager = $this-&gt;getDoctrine()-&gt;getManager();\n$entityManager-&gt;persist($sampleEntity);\n$entityManager-&gt;flush();<\/code><\/pre><p>&#22312;&#19978;&#36848;&#20195;&#30721;&#20013;&#65292;&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;&#23454;&#20363;&#12290;<code>SampleEntity<\/code>&#24403;JSON&#25968;&#25454;&#21019;&#24314;&#21518;&#65292;&#23427;&#20250;&#34987;&#36171;&#20540;&#32473;&#12290;<code>data<\/code>&#23383;&#27573;&#65292;&#28982;&#21518;&#20351;&#29992;&#23454;&#20307;&#31649;&#29702;&#22120;&#23558;&#20854;&#25345;&#20037;&#21270;&#21040;&#25968;&#25454;&#24211;&#20013;&#12290;<\/p><h2>&#26597;&#35810;JSON&#25968;&#25454;<\/h2><p>&#26597;&#35810;JSON&#23383;&#27573;&#38750;&#24120;&#31616;&#21333;&#12290;&#23545;&#20110;MySQL&#29992;&#25143;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#25968;&#25454;&#24211;&#25552;&#20379;&#30340;JSON&#20989;&#25968;&#26469;&#19982;JSON&#23383;&#27573;&#20013;&#30340;&#25968;&#25454;&#36827;&#34892;&#20132;&#20114;&#65306;<\/p><pre><code>$repository = $this-&gt;getDoctrine()-&gt;getRepository(SampleEntity::class);\n$query = $repository-&gt;createQueryBuilder('s')\n    -&gt;where('JSON_CONTAINS(s.data, ':value') = 1')\n    -&gt;setParameter('value', '\"value\"')\n    -&gt;getQuery();\n\n$result = $query-&gt;getResult();<\/code><\/pre><p>PostgreSQL &#29992;&#25143;&#21487;&#20197;&#20351;&#29992;&#23427;&#12290;<code>-&gt;<\/code>and &#26159;&ldquo;&#21644;&rdquo;&#30340;&#25340;&#38899;&#65292;&#34920;&#31034;&#24182;&#21015;&#20851;&#31995;&#25110;&#32852;&#21512;&#20351;&#29992;&#12290;<code>-&gt;&gt;<\/code>&#26597;&#35810;JSON&#21015;&#30340;&#25805;&#20316;&#31526;&#65306;<\/p><pre><code>$query = $repository-&gt;createQueryBuilder('s')\n    -&gt;where('s.data-&gt;&gt;key = :key')\n    -&gt;setParameter('key', 'value')\n    -&gt;getQuery();\n\n$result = $query-&gt;getResult();<\/code><\/pre><p>&#20351;&#29992;Doctrine&#30340;&#26597;&#35810;&#26500;&#24314;&#22120;&#25191;&#34892;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#21487;&#33021;&#38656;&#35201;&#20351;&#29992;&#24179;&#21488;&#29305;&#23450;&#30340;&#21151;&#33021;&#65292;&#36825;&#21487;&#33021;&#20250;&#32570;&#20047;ORM&#36890;&#24120;&#25552;&#20379;&#30340;&#25277;&#35937;&#12290;<\/p><h2>&#22788;&#29702;&#22797;&#26434;&#30340;JSON&#25968;&#25454;&#12290;<\/h2><p>&#22914;&#26524;&#20320;&#30340;JSON&#23545;&#35937;&#22797;&#26434;&#65292;&#19988;&#24076;&#26395;&#30830;&#20445;&#31867;&#22411;&#23436;&#25972;&#24615;&#65292;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;&#33258;&#23450;&#20041;&#31867;&#26469;&#34920;&#31034;&#20320;&#30340;JSON&#32467;&#26500;&#12290;Doctrine&#21487;&#20197;&#36890;&#36807;&#24207;&#21015;&#21270;&#21644;&#21453;&#24207;&#21015;&#21270;&#22797;&#26434;&#30340;&#32467;&#26500;&#19982;&#24207;&#21015;&#21270;&#22120;&#21644;&#33258;&#23450;&#20041;&#31867;&#22411;&#19968;&#36215;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p><h3>&#27493;&#39588; 1&#65306;&#23450;&#20041;&#33258;&#23450;&#20041;Doctrine&#31867;&#22411;<\/h3><p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#20026;&#33258;&#23450;&#20041;&#30340;Doctrine&#31867;&#22411;&#23450;&#20041;&#19968;&#20010;&#12290;&#36825;&#20010;&#31867;&#22411;&#23558;&#36127;&#36131;&#23558;&#22797;&#26434;&#30340;JSON&#32467;&#26500;&#36716;&#25442;&#20026;PHP&#23545;&#35937;&#12290;<\/p><p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010;PHP&#31867;&#26469;&#34920;&#31034;&#22797;&#26434;&#30340;JSON&#32467;&#26500;&#65306;<\/p><pre><code>class ComplexJson\n{\n    \/\/ properties and methods representing the complex JSON structure\n}<\/code><\/pre><p>&#29616;&#22312;&#65292;&#35753;&#25105;&#20204;&#21019;&#24314;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;Doctrine&#31867;&#22411;&#65306;<\/p><pre><code>use DoctrineDBALTypesType;\nuse DoctrineDBALPlatformsAbstractPlatform;\nuse SymfonyComponentSerializerSerializerInterface;\n\nclass ComplexJsonType extends Type\n{\n    const COMPLEX_JSON = 'complex_json'; \/\/ Type name\n\n    private $serializer;\n\n    public function __construct(SerializerInterface $serializer)\n    {\n        $this-&gt;serializer = $serializer;\n    }\n\n    public function getName()\n    {\n        return self::COMPLEX_JSON;\n    }\n\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform-&gt;getJsonTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $this-&gt;serializer-&gt;deserialize($value, ComplexJson::class, 'json');\n    }\n\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value instanceof ComplexJson) {\n            return $this-&gt;serializer-&gt;serialize($value, 'json');\n        }\n\n        throw new InvalidArgumentException('Value must be an instance of ComplexJson');\n    }\n}\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#23450;&#21046;&#31867;&#22411;&#20013;&#65306;<\/p><p>&#25105;&#20204;&#27491;&#22312;&#20351;&#29992;Symfony&#30340;&#24207;&#21015;&#21270;&#21644;&#21453;&#24207;&#21015;&#21270;&#32452;&#20214;&#36827;&#34892;&#24207;&#21015;&#21270;&#21644;&#21453;&#24207;&#21015;&#21270;&#12290;<\/p><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#19981;&#23436;&#25972;&#65292;&#35831;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#12290;<code>convertToDatabaseValue<\/code>&#26041;&#27861;&#24207;&#21015;&#21270;&#26159;&#19968;&#31181;&#25216;&#26415;&#65292;&#29992;&#20110;&#23558;&#25968;&#25454;&#32467;&#26500;&#36716;&#25442;&#20026;&#21487;&#23384;&#20648;&#25110;&#20256;&#36755;&#30340;&#26684;&#24335;&#12290;<code>ComplexJson<\/code>&#35831;&#25552;&#20379;&#38656;&#35201;&#36716;&#25442;&#20026;JSON&#30340;&#23545;&#35937;&#25110;&#25968;&#25454;&#32467;&#26500;&#65292;&#20197;&#20415;&#25105;&#36827;&#34892;&#32763;&#35793;&#21644;&#22788;&#29702;&#12290;<\/p><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#27809;&#26377;&#23436;&#20840;&#34920;&#36798;&#28165;&#26970;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>convertToPHPValue<\/code>&#26041;&#27861;&#20174;JSON&#25968;&#25454;&#20013;&#21453;&#24207;&#21015;&#21270;&#20026;&#19968;&#20010;&#12290;<code>ComplexJson<\/code>&#23545;&#35937;&#12290;<\/p><h3>&#27493;&#39588;2&#65306;&#27880;&#20876;&#33258;&#23450;&#20041;&#31867;&#22411;<\/h3><p>&#22312;Doctrine&#37197;&#32622;&#20013;&#27880;&#20876;&#27492;&#31867;&#22411;&#12290;&#20855;&#20307;&#26041;&#27861;&#21462;&#20915;&#20110;&#24744;&#30340;Symfony&#29256;&#26412;&#21644;&#37197;&#32622;&#35774;&#32622;&#12290;<\/p><h3>&#20351;&#29992;&#26041;&#27861;&#12290;<\/h3><p>&#20320;&#21487;&#20197;&#23558;&#20854;&#29992;&#22312;Doctrine&#23454;&#20307;&#31867;&#20013;&#65306;<\/p><pre><code>\/**\n * @ORMColumn(type=\"complex_json\")\n *\/\nprivate $complexData;\n<\/code><\/pre><p>&#35831;&#27880;&#24847;&#65292;&#36825;&#26159;&#19968;&#20010;&#31616;&#21270;&#31034;&#20363;&#20197;&#35828;&#26126;&#27010;&#24565;&#12290;&#22312;&#23454;&#38469;&#22330;&#26223;&#20013;&#65292;&#24744;&#24212;&#35813;&#21253;&#25324;&#38169;&#35823;&#22788;&#29702;&#21644;&#21487;&#33021;&#26356;&#22797;&#26434;&#30340;&#36923;&#36753;&#26469;&#23454;&#29616;&#24207;&#21015;&#21270;\/&#21453;&#24207;&#21015;&#21270;&#65292;&#36825;&#21462;&#20915;&#20110;&#24744;&#30340;&#20855;&#20307;&#38656;&#27714;&#12290;&#27492;&#22806;&#65292;&#24744;&#38656;&#35201;&#35774;&#32622;Symfony&#24207;&#21015;&#21270;&#32452;&#20214;&#20013;&#30340;&#24517;&#35201;&#32534;&#30721;&#22120;&#21644;&#27491;&#24120;&#21270;&#22120;&#65292;&#20197;&#36866;&#24212;&#24744;&#30340;&#29305;&#23450;&#23545;&#35937;&#32467;&#26500;&#12290;<\/p><h2>&#39564;&#35777;&#21644;&#23433;&#20840;&#24615;<\/h2><p>&#22312;&#23384;&#20648;&#25110;&#20351;&#29992;JSON&#25968;&#25454;&#20043;&#21069;&#65292;&#24517;&#39035;&#36827;&#34892;&#39564;&#35777;&#21644;&#28165;&#29702;&#20197;&#38450;&#27490;&#27880;&#20837;&#25915;&#20987;&#24182;&#30830;&#20445;&#25968;&#25454;&#23436;&#25972;&#24615;&#12290;&#30001;&#20110;&#25968;&#25454;&#26159;&#20197;&#25991;&#26412;&#26684;&#24335;&#23384;&#20648;&#30340;&#65292;&#35201;&#35686;&#24789;&#22240;&#19981;&#24403;&#22788;&#29702;&#26410;&#20449;&#20219;&#36755;&#20837;&#32780;&#21487;&#33021;&#20135;&#29983;&#30340;&#23433;&#20840;&#28431;&#27934;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#23384;&#20648;&#21644;&#26597;&#35810;JSON&#19982;Doctrine&#30340;&#21151;&#33021;&#24378;&#22823;&#65292;&#22914;&#26524;&#27491;&#30830;&#20351;&#29992;&#65292;&#21487;&#20197;&#26497;&#22823;&#22320;&#22686;&#24378;PHP&#24212;&#29992;&#31243;&#24207;&#30340;&#21487;&#25193;&#23637;&#24615;&#12290;&#36825;&#28041;&#21450;&#21040;&#36873;&#25321;&#27491;&#30830;&#30340;&#25968;&#25454;&#24211;&#31867;&#22411;&#12289;&#35774;&#32622;&#22909;&#23454;&#20307;&#20197;&#21450;&#21487;&#33021;&#38656;&#35201;&#36866;&#37197;&#26597;&#35810;&#20197;&#22788;&#29702;JSON&#29305;&#23450;&#36923;&#36753;&#12290;&#36890;&#36807;&#26412;&#25351;&#21335;&#65292;&#24744;&#21487;&#20197;&#26377;&#25928;&#22320;&#22312;&#22522;&#20110;Doctrine&#30340;&#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992;JSON&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;&#20225;&#19994;&#32423;&#24320;&#21457;&#29615;&#22659;&#20013;&#65292;&#23384;&#20648;&#21644;&#31649;&#29702;JSON&#25968;&#25454;&#36890;&#24120;&#28041;&#21450;&#21040;&#20197;&#19979;&#20960;&#20010;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#25968;&#25454;&#26684;&#24335;&#21270;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23558;JSON&#25968;&#25454;&#36716;&#25442;&#20026;&#36866;&#21512;&#23384;&#20648;&#30340;&#24418;&#24335;&#12290;&#36825;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992;&#32534;&#31243;&#35821;&#35328;&#20013;&#30340;&#20869;&#32622;&#20989;&#25968;&#65288;&#22914;Python&#30340;<code>json.dumps()<\/code>&#65289;&#25110;&#32773;&#24211;&#65288;&#22914;JavaScript&#30340;<code>JSON.stringify()<\/code>)&#26469;&#23454;&#29616;&#12290;<\/p>\n<pre><code class=\"language-python\">import json\n\ndata = {\n    \"name\": \"John Doe\",\n    \"age\": 30,\n    \"email\": \"john.doe@example.com\"\n}\n\n# &#20351;&#29992;json.dumps()\njson_data = json.dumps(data)\n\nprint(json_data)<\/code><\/pre>\n<h3>2. &#23384;&#20648;&#21040;&#25991;&#20214;&#31995;&#32479;<\/h3>\n<p>&#23545;&#20110;&#26412;&#22320;&#24212;&#29992;&#26469;&#35828;&#65292;&#20320;&#21487;&#20197;&#30452;&#25509;&#25226;JSON&#23383;&#31526;&#20018;&#20445;&#23384;&#21040;&#25991;&#20214;&#20013;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#30340;&#24037;&#20316;&#30446;&#24405;&#26159;<code>\/home\/user\/data.json<\/code>&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-bash\">echo -e '{\"name\":\"John Doe\",\"age\":30,\"email\":\"john.doe@example.com\"}' &gt; \/home\/user\/data.json<\/code><\/pre>\n<h3>3. &#36890;&#36807;&#25968;&#25454;&#24211;&#23384;&#20648;<\/h3>\n<p>&#23545;&#20110;&#38656;&#35201;&#25345;&#20037;&#21270;&#30340;&#24212;&#29992;&#65292;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;&#20851;&#31995;&#22411;&#25968;&#25454;&#24211;&#65288;&#22914;MySQL&#65292;PostgreSQL&#65289;&#25110;&#38750;&#20851;&#31995;&#22411;&#25968;&#25454;&#24211;&#65288;&#22914;MongoDB&#65289;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#22522;&#26412;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h4>3.1 &#21019;&#24314;&#25968;&#25454;&#24211;&#34920;<\/h4>\n<p>&#22312;SQL&#20013;&#65292;&#21019;&#24314;&#34920;&#32467;&#26500;&#22914;&#19979;&#65306;<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE users (\n    id INT PRIMARY KEY,\n    name VARCHAR(255),\n    email VARCHAR(255)\n);<\/code><\/pre>\n<h4>3.2 &#25554;&#20837;&#25968;&#25454;<\/h4>\n<p>&#25554;&#20837;&#25968;&#25454;&#26102;&#65292;&#20351;&#29992;<code>INSERT INTO<\/code>&#35821;&#21477;&#65306;<\/p>\n<pre><code class=\"language-sql\">INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');<\/code><\/pre>\n<h4>3.3 &#26597;&#35810;&#25968;&#25454;<\/h4>\n<p>&#26597;&#35810;&#25968;&#25454;&#26102;&#65292;&#20351;&#29992;<code>SELECT * FROM ... WHERE ...<\/code>&#35821;&#21477;&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE id = 1;<\/code><\/pre>\n<h4>3.4 &#26356;&#26032;&#25968;&#25454;<\/h4>\n<p>&#26356;&#26032;&#25968;&#25454;&#26102;&#65292;&#20351;&#29992;<code>UPDATE ... SET ... WHERE ...<\/code>&#35821;&#21477;&#65306;<\/p>\n<pre><code class=\"language-sql\">UPDATE users SET email = 'new.email@example.com' WHERE id = 1;<\/code><\/pre>\n<h4>3.5 &#21024;&#38500;&#25968;&#25454;<\/h4>\n<p>&#21024;&#38500;&#25968;&#25454;&#26102;&#65292;&#20351;&#29992;<code>DELETE FROM ... WHERE ...<\/code>&#35821;&#21477;&#65306;<\/p>\n<pre><code class=\"language-sql\">DELETE FROM users WHERE id = 1;<\/code><\/pre>\n<h3>4. &#23433;&#20840;&#24615;<\/h3>\n<p>&#30830;&#20445;&#23545;JSON&#25968;&#25454;&#36827;&#34892;&#21152;&#23494;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#12290;&#36825;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992;&#21704;&#24076;&#31639;&#27861;&#65288;&#22914;MD5&#25110;SHA-256&#65289;&#26469;&#29983;&#25104;&#23433;&#20840;&#30340;&#23494;&#38053;&#65292;&#24182;&#23558;&#20854;&#19982;&#21407;&#22987;&#25968;&#25454;&#19968;&#36215;&#23384;&#20648;&#12290;&#27492;&#22806;&#65292;&#36824;&#24212;&#23450;&#26399;&#22791;&#20221;&#25968;&#25454;&#20197;&#38450;&#20002;&#22833;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#27491;&#22312;&#20351;&#29992;Python&#21644;SQLite&#25968;&#25454;&#24211;&#26469;&#23384;&#20648;JSON&#25968;&#25454;&#65292;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-python\">import sqlite3\nfrom json import loads, dumps\n\ndef create_db():\n    conn = sqlite3.connect('my_database.db')\n    c = conn.cursor()\n\n    # &#21019;&#24314;&#34920;\n    c.execute('''CREATE TABLE users\n                 (id INTEGER PRIMARY KEY, \n                  name TEXT NOT NULL, \n                  email TEXT UNIQUE)''')\n\n    # &#25554;&#20837;&#25968;&#25454;\n    c.execute(\"INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com')\")\n    conn.commit()\n\n    return conn\n\ndef insert_json_to_db(conn):\n    with open('\/path\/to\/json_file.json') as f:\n        data = loads(f.read())\n\n    c = conn.cursor()\n    c.execute(\"INSERT INTO users (name, email) VALUES (?, ?)\", (data['name'], data['email']))\n    conn.commit()\n\nconn = create_db()\ninsert_json_to_db(conn)<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026;<code>users<\/code>&#30340;&#34920;&#65292;&#28982;&#21518;&#35835;&#21462;&#20102;JSON&#25991;&#20214;&#30340;&#20869;&#23481;&#24182;&#25554;&#20837;&#21040;&#30456;&#24212;&#30340;&#21015;&#20013;&#12290;&#27880;&#24847;&#65292;&#36825;&#37324;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#65292;&#23454;&#38469;&#30340;&#24212;&#29992;&#21487;&#33021;&#20250;&#26356;&#22797;&#26434;&#65292;&#21253;&#25324;&#38169;&#35823;&#22788;&#29702;&#12289;&#23433;&#20840;&#24615;&#25514;&#26045;&#31561;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#23384;&#20648;JSON&#25968;&#25454;&#26159;&#29616;&#20195;&#36719;&#20214;&#24320;&#21457;&#20013;&#30340;&#24120;&#35265;&#38656;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1111","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1111"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1111"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1111"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}