为了账号安全,请及时绑定邮箱和手机立即绑定

以下代码中,为什么输出是空值?

以下代码中,为什么输出是空值?

PHP C
HUX布斯 2022-03-03 07:07:39
$json='{\"gourl\":\"\",\"username\":\"linch16@163.com\",\"password\":123,\"password1\":123,\"vcode\":1234,\"protocol\":1}';$obj=json_decode($json);var_dump($obj);
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

原因是你在解码时没有设置MemoryStream中流的位置,改成下面这样就行了,还有MemoryStream构造方法里的那个长度指的是字节数组的长度,如果你在编码时使用的是Unicode编码的话,解码的时候就不能得到原始的字符串了。

string XML = "asdasdasd";
System.IO.MemoryStream XMLStream = new System.IO.MemoryStream(XML.Length);
XMLStream.Write(ASCIIEncoding.ASCII.GetBytes(XML), 0, XML.Length);
System.IO.StreamReader Reader = new System.IO.StreamReader(XMLStream);
XMLStream.Position = 0;
String Output = Reader.ReadToEnd();

建议改为

string XML = "asdasdasd";
byte[] byteArr = Encoding.ASCII.GetBytes(XML);
System.IO.MemoryStream XMLStream = new System.IO.MemoryStream(byteArr.Length);
XMLStream.Write(byteArr, 0, byteArr.Length);
XMLStream.Position = 0;
System.IO.StreamReader Reader = new System.IO.StreamReader(XMLStream, Encoding.ASCII);
String Output = Reader.ReadToEnd();

查看完整回答
反对 回复 2022-03-07
  • 1 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信