已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP

标题: PHP 能否实现类似 JAVA 中 Gson

作者: @Ta

时间: 2021-06-27发布,2021-06-27修改

点击: 5490

表述可能不准确或模糊,举个例子

有以下 JSON 数据

{
    "code":200,
    "msg":"这是信息",
    "data":[
        {
            "id":1,
            "nickname":"昵称"
        },
        {
            "id":2,
            "nickname":"昵称2222"
        }
    ]
}

生成 JAVA 实体类:

public class JsonRootBean {

    private int code;
    private String msg;
    private List<Data> data;
    public void setCode(int code) {
         this.code = code;
     }
     public int getCode() {
         return code;
     }

    public void setMsg(String msg) {
         this.msg = msg;
     }
     public String getMsg() {
         return msg;
     }

    public void setData(List<Data> data) {
         this.data = data;
     }
     public List<Data> getData() {
         return data;
     }
}

public class Data {

    private int id;
    private String nickname;
    public void setId(int id) {
         this.id = id;
     }
     public int getId() {
         return id;
     }

    public void setNickname(String nickname) {
         this.nickname = nickname;
     }
     public String getNickname() {
         return nickname;
     }

}

使用

//此处省略部分代码

String json = "此处省略上述JSON数据";
JsonRootBean jrb = Gson::fromJson(json, JsonRootBean.class);

//然后配合 IDE 的语法提示就可以很方便的“调用方法”获取想要的数据

jrb.getCode()

所以,PHP 有没有类似的实现方法


[隐藏样式|查看源码]


『回复列表(10|隐藏机器人聊天)』

1.

@老虎会游泳,万能🐯

(/@Ta/2021-06-27 00:34//)

2.
(/@Ta/2021-06-27 01:22//)

3.

@老虎会游泳,其实我是想要那种根据 JSON 的语法提示 jrb.getXXXXXX()

PHP:jrb->getXXXXXX()

(/@Ta/2021-06-27 12:12//)

5.

@NowTime,是因为有了“生成 JAVA 实体类”这一步,IDE才有提示的。如果你去给PHP也按JSON的字段写一个“实体类”,那也会有提示。但是有没有自动生成的工具我就不知道了,因为json_decode返回的对象太好用,我根本没必要去研究这个。

(/@Ta/2021-06-27 14:40//)

6. @NowTime,就是因为Java和c#这种需要把JSon解析绑定到实体类,所以对于动态字段兼容非常差,php解析成class后,可以用函数生成实体类的,
(/@Ta/2021-06-27 15:25//)

7. 应该没有,像php这种脚本语言,是完全没必要的,静态编译强类型语言才需要这样做。比如java,go,c#

而上面的都有在线工具,就是没php的

image.png


当然,你可以自己写,此类工具的原理之一可以是字符串拼接,所以其实也简单

(/@Ta/2021-06-27 19:16//)

8.

看到标题,感觉有点本末倒置.

进来一看,还真是.

我的理解是gson是为了为强类型语言解析动态json问题的纾困.

而php js 天生支持json良好,应该不需要相关功能.

如果是代码提示,也没有这个必要...个人看法
小米MIX2s(白)

(/@Ta/2021-06-29 00:22//)

9.

@老虎会游泳@水木易安
其实我就想语法提示,懒得再输入

(/@Ta/2021-07-02 22:41//)

10.

@无道@胡椒舰长,了解了 了解了

(/@Ta/2021-07-02 22:42//)

11.

@水木易安,哈哈哈 好的

(/@Ta/2021-07-02 22:42//)

回复需要登录

9月4日 08:23 星期四

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1