perl Mojo::XMLRPC::Message::响应Mojolicious JSON

7lrncoxx  于 2023-06-23  发布在  Perl
关注(0)|答案(1)|浏览(129)

我有一个XML-RPC响应,但我很难使用Mojo::XMLRPC将其作为JSON返回。感谢你的指导。

use Mojolicious::Lite;
use Mojo::XMLRPC qw[decode_xmlrpc];
#use XMLRPC::Fast;

get '/' => sub {
    my $c = shift;

    my $xml = <<~'XML';
    <?xml version="1.0" encoding="utf-8"?>
    <methodResponse>
      <params>
        <param>
          <value>
            <struct>
              <member>
                <name>myarray</name>
                <value>
                  <array>
                    <data>
                      <value>
                        <struct>
                          <member>
                            <name>bob</name>
                            <value>
                              <boolean>0</boolean>
                            </value>
                          </member>
                          <member>
                            <name>alice</name>
                            <value>
                              <i4>1</i4>
                            </value>
                          </member>
                        </struct>
                      </value>
                    </data>
                  </array>
                </value>
              </member>
            </struct>
          </value>
        </param>
      </params>
    </methodResponse>
    XML
    
    $c->render(json => decode_xmlrpc($xml));
};

app->start;
svmlkihl

svmlkihl1#

根据文档https://metacpan.org/pod/Mojo::XMLRPCdecode_xmlrpc()from_xmlrpc()方法返回一个包含结果的Mojo::XMLRPC::Message对象。查看该模块的源代码https://metacpan.org/release/JBERGER/Mojo-XMLRPC-0.06/source/lib/Mojo/XMLRPC/Message.pm,可以发现它有一个parameters方法。因此,您可以尝试以下操作:

$c->render(json => decode_xmlrpc($xml)->parameters);

相关问题