我正在使用JAXL库连接到google gcm ccs服务器。我收到了应用程序发送的上游消息。我在解析文件时遇到问题。接收消息回调('on_normal_message')为XMPPStanza对象提供回调。我需要解析此对象以获取移动应用程序发送的实际消息。以下是我的XMPPStanza。
XMPPStanza Object
( [xml:XMPPStanza:private] => JAXLXml对象 ( [name] =>信息 [ns] =>胡言乱语:客户端 [attrs] =>排列 ( [to] => ID@gcm.googleapis.com [from] => devices@gcm.googleapis.com [type] =>正常 )
[text] =>
[childrens] => Array
(
[0] => JAXLXml Object
(
[name] => gcm
[ns] => google:mobile:data
[attrs] => Array
(
)
[text] => {
"category":"com.google.android.gcm.demo.app","
data":{"my_message":"Hello World","my_action":"com.google.android.gcm.demo.app.ECHO_NOW"},
"message_id":"2",
"from":"GCMID"
}
[childrens] => Array
(
)
[parent] => JAXLXml Object
递推 [流浪者] => JAXLXml对象 递推 )
)
[parent] =>
[rover] => JAXLXml Object
递推 )
)
我需要的数据是[儿童]。它是一个JAXLXml对象数组。我如何得到这些孩子的[文字]。这实际上是一个json字符串。我无法json_decode这个字符串,因为“”“。我如何轻松获得这些数据?我必须创建一个ack消息,在收到消息后发送到ccs服务器。我需要来自,message_id fileds in the original消息。
谢谢, abbiya
答案 0 :(得分:0)
提取所需的文本节点后(请阅读http://abhinavsingh.com/blog/2012/09/jaxlxml-strophe-style-xml-builder-working-with-jaxl-a-networking-library-in-php-part-2/了解如何),使用html_entity_decode,如下所示:
$ php -r 'echo html_entity_decode("{
"category":"com.google.android.gcm.demo.app","
data":{"my_message":"Hello World","my_action":"com.google.android.gcm.demo.app.ECHO_NOW"},
"message_id":"2",
"from":"GCMID"
}");'
{
"category":"com.google.android.gcm.demo.app","
data":{"my_message":"Hello World","my_action":"com.google.android.gcm.demo.app.ECHO_NOW"},
"message_id":"2",
"from":"GCMID"
}