gpt4 book ai didi

android - Smack 以 XML 格式接收消息,我可以将它们更改为 JSON 吗?

转载 作者:行者123 更新时间:2023-11-29 19:43:21 27 4
gpt4 key购买 nike

我正在开发一个 android 聊天应用程序,使用 Openfire 作为 XMPP 的支持服务器,并使用 smack 库作为 XMPP 的 android 实现。

一切顺利。直到我发现这条收到的来自另一个用户的消息。格式是这样的:

<message to="rajesh2@peacock-hp" id="0mpqe-10" type="chat" from="rajesh1@peacock-hp/Smack">
<body>{"Date":"8 Jul 2016","Time":"0:40p.m.","body":" vhklv","isMine":true,"msgid":"909-08","receiver":"rajesh2","sender":"rajesh1","senderName":"rajesh1"}</body>
<thread>06ed73bb-21ad-4276-80cb-0ea4fc9d9dfb</thread>
</message>

正在接收消息的我的监听器:

private class MMessageListener implements ChatMessageListener {

public MMessageListener(Context contxt) {
}

@Override
public void processMessage(final org.jivesoftware.smack.chat.Chat chat,
final Message message) {
Log.i("MyXMPP_MESSAGE_LISTENER", "Xmpp message received: '"
+ message);

}

}

我的问题是: 我可以接收 JSON 格式的消息而不是 XML ??

由于我正在学习 smack 和 xmpp,如果我在某些地方错了,请指导我。如果你们中的任何一个发现我错了,请纠正我。

最佳答案

可以通过a project将消息转成JSON格式在 Github 上。

示例:

public class Main {

public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING =
"<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";

public static void main(String[] args) {
try {
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);
} catch (JSONException je) {
System.out.println(je.toString());
}
}
}

输出是:

{
"test": {
"attrib": "moretest",
"content": "Turn this to JSON"
}
}

归功于 Quickest way to convert XML to JSON in Java

关于android - Smack 以 XML 格式接收消息,我可以将它们更改为 JSON 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38260930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com