如何去掉Json字符串中反斜杠

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去掉Json字符串中反斜杠相关的知识,希望对你有一定的参考价值。

原来你说的是http后面的反斜杠,那个的确是数据本身的错误,但是我有点不敢相信,QQ居然会犯这种低级错误,看来树大有蛀虫啊,写这接口的人水平不行,自己进行Json字符串拼接的时候,多输出了一次反斜杠。
对于这种错误数据,既然你已经知道问题了,那么处理也不难,只要对反序列化后的结果处理下即可,将figureurl属性中的“http:\/\/”替换为"http://"就没事了,如果所有的http://都是这个德性,你也可以直接原始字符串匹配替换,匹配所有“http:\/\/”替换为"http://"
参考技术A 你这个不算标准的JSON格式数据,可以先将\"替换成"即可。

再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。

若仍输出为NULL,是由于存在BOM头信息,
$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);

转换即可。本回答被提问者和网友采纳

如何计算字符串中反斜杠“\”的数量[重复]

【中文标题】如何计算字符串中反斜杠“\\”的数量[重复]【英文标题】:How to count number of backslash "\" in a string [duplicate]如何计算字符串中反斜杠“\”的数量[重复] 【发布时间】:2017-12-13 19:53:39 【问题描述】:

如何计算字符串中反斜杠的数量? 我尝试了以下方法,但都没有奏效。

string s = @"\a\a\n\u\u0013((((\a\b\n"; // output must be 8
int count = s.Count(a => a == "\\"); // Operator == cant be applied of type char & string
int count = s.Count(a => a == "\"); // newline in constant
int count = s.Split('\\').Length // it doesnt count

【问题讨论】:

对于您的每个问题,简单的谷歌搜索都会产生大量帖子,就像我选择用来结束您的问题的帖子一样。下次问问题之前请多加小心。 【参考方案1】:

您的第一次尝试几乎是正确的;但是你需要比较一个字符和一个字符,而不是一个字符和一个字符串。

你的代码应该是:

int count = s.Count(a => a == '\\');

【讨论】:

我试过你的建议,没有错误,但结果仍然为零 @Vincent 那么您必须针对另一个字符串进行测试。我已经逐字运行代码,它打印出 8。

以上是关于如何去掉Json字符串中反斜杠的主要内容,如果未能解决你的问题,请参考以下文章

为啥JSON字符串当中会出现反斜杠?

你怎么总是搞不清Python中反斜杠的问题?

怎么过滤JSON数组中反斜杠“”,反序列化

如何在js中去掉json数据中的转义附

如何在 C++ 非托管代码 Json 中反序列化一个字节 [] 的 json 字符串?

如何计算字符串中反斜杠“\”的数量[重复]