【问题标题】:PHP Json parsing of Java ObjectJava对象的PHP Json解析
【发布时间】:2016-10-27 09:25:34
【问题描述】:

我正在运行的一个小程序将创建 4 个对象,每个对象都有数据类型,如布尔数组、字符串、整数等,所有 4 个类都包含在一个超类中(目的是使其成为一个 json 字符串)

例如

public class Foo
{
    private A a;
    private B b;
    private C c;



}

public class A
{
    String str;
    int int_;
}

public class B
{
    boolean arr[];

}

public class C 
{
    // maybe an object, or rnum, or just priv data types
}

现在我可以轻松地将其转换为 json 使用 Gson 库。我的问题是将它发送到一个 PHP 页面,它可以解码 json 并保存每个对象的数据。现在我是 PHP 新手,从我看到人们说使用

json_encode(); json_decode();

我想知道这是否是最好/最简单的方法?从我认为我在网上看到的,解码将创建一个对象,但该对象是否与 java 对象完全一样?他们是更好的方法吗?很抱歉在这方面是个菜鸟,但感谢您提供任何帮助

【问题讨论】:

    标签: java php json gson android


    【解决方案1】:

    json_encode 函数适用于 PHP 对象到 Json 的转换。您想研究为该进程实现\JsonSerializable 接口。走另一条路有点复杂。最直接的方法是使用https://github.com/cweiske/jsonmapper。您也可以将 json_decode 转换为 stdClass,使用 php 序列化程序将 stdClass 转换为字符串,然后正则表达式将类从 \stdClass 替换为您想要的类。这有点hacky,但它确实有效。示例见this 帖子。

    【讨论】:

    • 感谢您的回复,所以如果我要从一个转换为 json 并发送到我的 php 网页的 java 对象,将其转换为等价物不是直截了当吗?那么您建议的方式是您认为最好的方式吗?
    • 您需要在您的 php 代码中为其创建另一个对象。这可以是 php 类或 stdClass 或基于数组的“HashMap”。它完全取决于您的实施。 PHP 的 json_decode 可以很好地处理数组和 stdClass。如果由于某种原因您需要一个 PHP“POJO”来表示该请求,您可能应该使用 jsonmapper 项目将值映射到您的 PHP“POJO”。
    • 好的,谢谢,最后,PHP 类和 stdClass 之间的主要区别是什么?而 PHP POJO 基本上是让我自己的对象正确?
    • stdClass 有点像 PHP 的基本对象类型。您可以使用它并动态添加您想要的任何属性。创建自己的 PHP 对象表示更加明确,并为您提供了实现 \jsonSerializable 和其他辅助方法的灵活性。这将取决于您对应用程序的需求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2016-10-17
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多