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

$json='{\"gourl\":\"\",\"username\":\"linch16@163.com\",\"password\":123,\"password1\":123,\"vcode\":1234,\"protocol\":1}';
$obj=json_decode($json);
var_dump($obj);

HUX布斯
浏览 163回答 1
1回答

潇湘沐

原因是你在解码时没有设置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();
打开App,查看更多内容
随时随地看视频慕课网APP