码迷,mamicode.com
首页 > 微信 > 详细

微信开发中json与xml数据处理

时间:2015-03-03 20:19:51      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:

写在前面的话:微信开发中,许多信息是通过json与xml格式来进行通信的,下面写一小总结。

=====正文开始======

一、json数据处理:json_decode

1、假设接收的json数据如下:

$json=‘{"access_token":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M","expires_in":7200}‘;

2、通过json_decode($json),将字符串的json数据转化为PHP对象的形式:

$jsonObj=json_decode($json);
var_dump($jsonObj);
var_dump($jsonObj->{access_token});

结果如下:

object(stdClass)[5]
  public ‘access_token‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
  public ‘expires_in‘ => int 7200
string
 ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘(length=28)

3.也可以通过json_decode($json,true),将字符串的json数据转化为PHP数组的形式:

$jsonArray=json_decode($json,true);
var_dump($jsonArray);
var_dump($jsonArray[‘access_token‘]);

结果如下:

array (size=2)
  ‘access_token‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
  ‘expires_in‘ => int 7200
string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)

二、xml数据处理:simplexml_load_string  

1、假设接收到的xml数据如下:

$xml=<<<XML
<xml>
<ToUserName><![CDATA[test]]></ToUserName>
<FromUserName><![CDATA[o6_bmjrPTlm6_2sgVt7hMZOPfL2M]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
XML;

2、通过simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA),将字符串的xml数据转化为PHP对象的形式: 

$data = simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA);
var_dump($data);

结果如下:

object(SimpleXMLElement)[5]
  public ‘ToUserName‘ => string ‘test‘ (length=4)
  public ‘FromUserName‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
  public ‘CreateTime‘ => string ‘1348831860‘ (length=10)
  public ‘MsgType‘ => string ‘text‘ (length=4)
  public ‘Content‘ => string ‘this is a test‘ (length=14)
  public ‘MsgId‘ => string ‘1234567890123456‘ (length=16)

3、获得其中FromUserName信息

var_dump($data->FromUserName);

结果如下:

object(SimpleXMLElement)[6]
  public 0 => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)

可见$data->FromUserName返回的竟然也是SimpleXMLElement的对象形式,如果此时将此数据插入数据库,将会失败。

4、单个的SimpleElement对象转化为字符串

var_dump((string)$data->FromUserName);//通过string强制转换
var_dump($data->FromUserName.‘‘);//或者直接与一个空字符连接

此时的结果如下:

string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)

 

微信开发中json与xml数据处理

标签:

原文地址:http://www.cnblogs.com/wuguanglei/p/4311477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!