在java中创建可在php api中反序列化的字符串的有效方法

在java中创建可在php api中反序列化的字符串的有效方法,java,php,magento,serialization,Java,Php,Magento,Serialization,提前谢谢你,对我的英语不好表示歉意 我正在使用magento api同步数据 现在我的问题是api accept的字符串,并使用unserialize()方法转换该字符串并使用该数据 如果我们使用php中的api,我们可以使用serialize()方法简单地生成该字符串 但是,我必须从java调用该api,并且必须自己管理该字符串 下面是正在发生的事情的示例。 Php代码:- $gp = array( 'website_id' => '0', 'cust_g

提前谢谢你,对我的英语不好表示歉意
我正在使用magento api同步数据
现在我的问题是api accept的字符串,并使用unserialize()方法转换该字符串并使用该数据
如果我们使用php中的api,我们可以使用serialize()方法简单地生成该字符串
但是,我必须从java调用该api,并且必须自己管理该字符串 下面是正在发生的事情的示例。
Php代码:-

$gp = array(
        'website_id' => '0',
        'cust_group' => '1',
        'price' => '5.50'
    );
在使用serialize方法之后,它会生成如下字符串

serialize($gp)   
//it looks like : a:3:{s:10:"website_id";s:1:"0";s:10:"cust_group";s:1:"1";s:5:"price";s:4:"5.50";}
然后在php中,我可以使用该序列化字符串作为MagentoAPI请求参数的一部分
(这不是整个请求,只是我更大请求的一小部分)

现在在MagentoAPI中,它接受字符串并尝试使用php unserialize()方法取消序列化该字符串

因此,它将再次在api中创建该数组结构,并且可以像php中的数组一样使用它

现在我的问题来了
我想从java调用该api,因为我已经编写了一些类似这样的代码,运行良好,但我想知道有没有更好的方法来实现这一点
Java代码:-

    String gp = getFormetedString("0","1","5.50");
    // will use this gp in my request as part of arguments
    public static String getFormetedString(String website_id, String cust_group, String price) {
        return "a:3:{s:10:\"website_id\";s:" + website_id.length() + ":\"" + website_id + "\";" 
                  + "s:10:\"cust_group\";s:" + cust_group.length() + ":\"" + cust_group + "\";" 
                  + "s:5:\"price\";s:" + price.length() + ":\"" + price + "\";}";

    }
因此,它将生成类似于java中php序列化字符串的字符串,我们将在java中作为请求参数的一部分传递该字符串

我不能改变api的行为,也不能使用json或xml等更好的编码技术来代替php的序列化方法

所以plz建议使用一些技术在java中生成字符串,就像php数组的序列化字符串一样

您也可以尝试下面的链接


您也可以尝试下面的链接


有帮助吗?怎么样?Hay@ajb谢谢,看起来很相似,但让我检查一下:)有帮助吗?怎么样?Hay@ajb谢谢,看起来很相似,但让我检查一下:)
    String gp = getFormetedString("0","1","5.50");
    // will use this gp in my request as part of arguments
    public static String getFormetedString(String website_id, String cust_group, String price) {
        return "a:3:{s:10:\"website_id\";s:" + website_id.length() + ":\"" + website_id + "\";" 
                  + "s:10:\"cust_group\";s:" + cust_group.length() + ":\"" + cust_group + "\";" 
                  + "s:5:\"price\";s:" + price.length() + ":\"" + price + "\";}";

    }