我們有一個 Base64 編碼的字串,如下所示:
eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=
並嘗試解析轉碼後的JSON 字串({"a":63,"c":298,"n":1,"s":1,"e":40,"p":4 } )作為表格。以下是期望的結果:
MySQL 所寫的 SQL:
SELECT JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."a"') a, JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."c"') c, JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."n"') n, JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."s"') s, JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."e"') e, JSON_EXTRACT(CONVERT(FROM_BASE64('eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=') USING utf8), '$."p"') p
這沒什麼難的。我們只需要將Base64編碼的字串轉換為JSON字串,然後根據K-V對將JSON解析成表即可。 SQL 編碼很複雜,特別是當結果表中的列數未知時。
在開源集算器SPL中編寫它很容易:
假設參數arg1的值為:
eyJhIjo2MywiYyI6Mjk4LCJuIjoxLCJzIjoxLCJlIjo0MCwicCI6NH0=
SPL作為開源的、專業的結構化資料運算語言,可以方便地處理各種資料來源,包括JSON。
以上是如何從基本編碼字串中解析鍵值對#eg11的詳細內容。更多資訊請關注PHP中文網其他相關文章!