【问题标题】:json object in phpphp中的json对象
【发布时间】:2012-03-12 14:31:31
【问题描述】:

我正在将一个 json 对象从 java 发送到 php。我在 java 端使用 gson,它将 json 作为对象发送:

Java 代码:

Fruit fruit = new Fruit();
fruit.setFruidId(6);
fruit.setAvailable("yes yes");

Gson gson = new Gson();
String json = gson.toJson(fruit);

这个json字符串是这样的

{"fruidId":6,"available":"yes yes"}

使用 java 端我可以将 json 数据作为这样的对象检索

Gson gson = new Gson();
Fruit a = gson.fromJson(json, Fruit.class);
System.out.println(fruit.getFruitId());

我想检索 php 中的数据作为对象;就像我用java做的一样。 有可能这样做吗?请给我指路。

【问题讨论】:

  • 不,你不能像在 java 中那样做,因为 PHP 不是 java。但您可能会发现 json_decode 很有帮助。但它无法从 json 字符串中创建 Fruit。你特别担心吗?
  • 是的,我想用 json 字符串创建 Fruit 对象。

标签: java php json gson


【解决方案1】:

使用json_decode 和第二个参数作为false 设置为一个对象或true 作为一个数组。

【讨论】:

  • 如何让它返回java代码中的Fruit对象?
  • $json = '{"fruitId":6,"available":"yes yes"}'; $object = json_decode($json); echo $object->fruitId;
  • 我想像这样调用 $fruit->getFruitId()... 不是 $object->fruitId 如果不可能这样做,我想我需要忘记这个对象技术
  • PHP 没有 getter 和 setter,除非你在你的类中实现它。但是如果只想获取水果id,为什么$object->fruitId不行呢?
【解决方案2】:

如果您通过 post 方法将与上述相同的 JSON 对象发送到 php 服务器,则可以使用 php as 对其进行解码

$json = $_SERVER['HTTP_JSON'];

$data = json_decode($json);

$name = $data->fruitId;

$pos = $data->可用;

应该这样做。

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多