首页 > 编程语言 >PHP的json问题

PHP的json问题

时间:2024-01-30 17:24:25浏览次数:46  
标签:UNESCAPED JSON 问题 json 斜杠 使用 encode PHP

在PHP中使用json是很简单的事情,直接使用json_encode,json_decode函数处理就好

绝大部分情况下直接使用是没有任何问题的,今天就分享下json在PHP中一些有意思的操作

中文不转义

使用json_encode的数据中含有中文时,如果什么参数都不传,生成的json字符串中文会变成UNICODE编码,直接看json字符串根本看出是什么中文,这个时候可以使用JSON_UNESCAPED_UNICODE参数处理

json_encode($data, JSON_UNESCAPED_UNICODE);

斜杠不转义

默认情况下,json_encode会转义斜杠(反斜杠 \)字符为/,同样可以使用JSON_UNESCAPED_SLASHES参数处理,就不会转义反斜杠

json_encode($data, JSON_UNESCAPED_SLASHES);

如果想要同时设置中文和斜杠都不转义,当然也是可以的

json_encode($data, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);

遇到的哪些骚操作

上面只是正常的使用,看一下都会,难的是怎么融汇贯通,下面分享下我在实际项目中的使用

项目需要和其他开发团队进行接口对接,我们使用的是PHP开发,另外一个团队使用的是Java,异构系统间的接口校验使用加码算发生成sign校验,当前这个校验在前期是要先行的,当时也是测试通过的。

但是在发布到测试线的时候就出现了接口鉴权不通过的问题,鉴权代码调试通过后就没有发生更改,这就很奇怪,而且是两个开发团队,都是自己那边没有问题,只能慢慢排查了

接口的加密是把body的所有参数也进行算法加密的,通过Java端的转包发现我们这边没有保持中文和反斜杠不转义,使用上面的两个参数json数据就可以了,项目初期鉴权时使用的简单的英文字符传递的,所以能通过。

扩展

不仅是json_encode函数可以使用这两个参数,同样json_decode函数也是可以使用这些参数的

标签:UNESCAPED,JSON,问题,json,斜杠,使用,encode,PHP
From: https://www.cnblogs.com/lis2/p/17997472

相关文章

  • ContosoRetailDW数据库恢复问题
    https://www.microsoft.com/en-us/download/details.aspx?id=18279下载ContosoBIdemoBAK.exe和ContosoBIdemoABF.exe解压后,无法恢复数据库的问题sqlserverexpress2008直接gui恢复时,提示标题:MicrosoftSQLServerManagementStudio------------------------------路径......
  • windows上使用python2.7获取svn info,中文路径乱码问题
    #-*-coding:utf-8-*-from__future__importunicode_literalsimportsubprocessimportcmdimportosos.environ['LANG']='en_US.UTF-8'classSVNCommand(cmd.Cmd):defdo_svninfo(self,folder_path):#构建svninfo命令......
  • P1029 最大公约数和最小公倍数问题
    321上题目链接:P1029[NOIP2001普及组]最大公约数和最小公倍数问题本小蒟蒻的原始思路就是枚举所有范围内的数,分别求出他们的最大公约数和最小公倍数,再看是否满足题意。于是就有了以下一言难尽的东西(;′⌒`)↓#include<stdio.h>intmain(){intx,y,count;sc......
  • 【Java】Java版本升级,找不到符号 问题处理
    哈喽,各位早上/中午/晚上好呀!JDK21出了也有一段时间了,有的小伙伴也按捺不住开始将项目升级到JDK21了吧。既然升级,大概多多少少都会遇到“找不到符号”的问题,英文原文是“cannotfindsymbol”。如何解决呢?以下方式不止针对于升级到JDK21,其它版本的升级配置方法相同。其实Idea......
  • 注意避开!OnePro这些问题平台没有任何有效监管!!
    投资们在选择平台的时候看监管就是为了给在遇到问题的时候有人能够解决,但有很多问题平台都没有正规的监管!!今天来盘点盘点这些问题平台,这些都是毫无监管力度的,看完你还敢入金这些平台吗?1.OnePro香港公司实为注册公司,不受任何监管!!如上图所示在其PC端MT4交易平台上,所使用的是OneproGlo......
  • 主从同步问题排查常用sql
    我们在配置mysql主从的时候经常会遇到一些问题,同步延迟、定位binlog错误、查看binlog等等问题,一般大家可能会用到其他方式或者命令,我一般都是采用纯sql的方式进行排查,这里把我常用的一些方法分享给大家:1.查询master和slave的状态showmasterstatus;showslavestatus;2.通过......
  • 【干货】解决CentOS 7.x上安装与部署SeaTunnel Web时遇到的问题
    1.环境采用的是虚拟机上安装CentOs7.x,安装java15环境,安装mysql8.0.28,这两步骤省略,之前的文章里面有讲,属于基础环境配置,也比较简单,说明我用的是一台CentOs7.x的虚拟机实例,都安装在一台上面,需要开放8081、3306和5801的防火墙,不然会网络访问不到。2.SeaTunnel安装部署2.1下载安装......
  • python之常用标准库-json/pickle/shelve
    json,用于各个平台语言的字符串和python数据类型间进行转换json的方法:dumps,loads,dump,loadpickle-用于python特有的类型(字符串,列表,字典,集合等)和python的数据类型间进行转换pickle的方法:dumps,loads,dump,load,但是都是以二进制存储shelve,是一个简单的k,v将内存数据通过......
  • [职场] 执业药师注册常见问题
    执业药师注册的设定依据是什么?1.《国务院对确需保留的行政审批项目设定行政许可的决定》(国务院令第412号)对确需保留且符合《中华人民共和国行政许可法》第十二条规定事项的行政审批项目,根据《中华人民共和国行政许可法》第十四条第二款的规定,现决定予以保留并设定行政许可,共500项。......
  • 贡献法解决子串问题
    对于一个字符串\(S\),我们定义\(S\)的分值\(f(S)\)为\(S\)中恰好出现一次的字符个数。例如\(f(“aba”)=1\),\(f(“abc”)=3\),\(f(“aaa”)=0\)。现在给定一个字符串\(S[0…n-1]\)(长度为\(n\)),请你计算对于所有\(S\)的非空子串\(S[i…j](0≤i\lej<n......