2016-07-08 5 views
1

私は、OpenfireをXMPPのサポートサーバーとして使用し、XMPPのアンドロイド実装としてスマックライブラリを使用してAndroidチャットアプリケーションを開発しています。スマッシュはXML形式のメッセージを受信して​​JSONに変更できますか?

状況は良好です。私は別のユーザーからこの受信メッセージを見つけるまで。メッセージを受信して​​いる

<message to="[email protected]" id="0mpqe-10" type="chat" from="[email protected]/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にこのメッセージを受け取ることはできますか?

私はうんざりとxmppを学んでいるので、私がどこかで間違っている場合は私を案内してください。あなたの誰かが私を間違って見つけたら、私を修正してください。

+0

サーバー側の開発者はJSON形式で作成する必要があります。あなたのAndroidアプリケーションからはできません –

+0

@ ZahidulIslamというサーバー側の開発はありません。 xamppにデータベースがあり、Openfireはすべてのものを提供しています.. !! –

+0

本当にJSONでメッセージを受け取りたいですか?あるいは、「」要素( '' "Date": "2016年7月8日"、 "Time": "0:40 p.m。"、 "body": "vhklv")内のJSONを抽出したいだけですか? .. '')のメッセージスタンザ? – Flow

答えて

1

Githubのa projectでメッセージをJSON形式に変換できます。

例:

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" 
    } 
} 

クレジットは、Openfireに対する応答形式ではありませんQuickest way to convert XML to JSON in Java

+0

これは私が探しているものではありません私はXMLをJSONに変換したくないのですが、JSONで直接応答するにはopenfireが必要です。直接できない場合は試してみます。努力ありがとうございます.. !! –

+0

申し訳ありません...しかし、私はすでに元の投稿のリンクについて言及しています。 – Khan

+0

@Khanあなたは私を助けることができますhttp://stackoverflow.com/questions/41627599/how-to-configure-push-mode-configuration-in-xmpp-with-fcm-refresh-token-using-sm –

1

JSONになります。 もちろん、すべてのOpenfireをJsonで "talk"に書き換えることはできますが、私にとっては意味がありません。私はあなたにお勧めは何

  • あなたは、JSON、が必要な場合は、パフォーマンスの問題を持っている場合、あなたは多分 Ejabber
  • ために見ることができるかもしれない韻律IMプラグイン
  • を持っています
  • XmlPullParserで頭を壊さないようにするには、Smackの代わりに 〜Bubblerを試してみてください。
  • あなたはちょうどあなたが(@Khanに感謝)

MyMessage extends Message 

public String toJson() 
{ 
JSONObject xmlJSONObj = XML.toJSONObject(this.toXML()); 
     String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR); 
} 

のようなものを持っていますので、単に各スタンザ・タイプに "toJson" を実装し、XMLと自信を持って感じていない場合あなたはJsonを使用することができます。

+0

私はopenfireを書いていません。私はちょうど私のPCにそれをインストールしました。 JSONで話すために私の不気味を設定する何か(いくつかの設定種類のもの)を私に教えてください。それが不可能なら、私はあなたの選択肢に切り替えます。ありがとうございました..!! –

+0

JsonでOpenfireを大量に書き直す必要はありませんが、私が提案したように、Jsonをクライアントに置くだけの問題なら、カスタムStanzas(メッセージ、Iq、プレゼンス)を拡張してJsonを作成して使用してください。 – MrPk

+0

okkあなたの提案をありがとう、私はそれを調べます... !! –