我们有一个 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中文网其他相关文章!