【问题标题】:retrieving json document property using php使用php检索json文档属性
【发布时间】:2016-03-30 18:21:38
【问题描述】:

我有以下查询 couchbase 数据库的 php 逻辑:

$myCluster = new CouchbaseCluster('couchbase://localhost');
$bucket = $myCluster->openBucket('reporting');
$result = $bucket->get('server_details_1');
$doc = $result->value;
var_dump($doc);
echo $doc->server_details->name."\n";

最后一行失败了,因为我认为我尝试访问 json 对象的方式不正确。也许它不再是一个 json 对象......我不太确定。但我确实知道 couchbase 将它作为 json 存储在数据库本身中。

这是 var_dump 命令返回的内容,它显示了对象的结构:

string '{"server_details":{"name":"test_server","dns_name":"test.server.mydomain.net","ipv4":"10.1.16.106","ipv6":"","type":"primary"},"server_status":{"up_to_date":true},"packages":{"pack1":{"current_version":"x.x","previous_version":"x.x","last_updated_on":"2016-03-16","play_id":"link to audit table"},"pack2":{"current_version":"x.x","previous_version":"x.x","last_updated_on":"2016-03-16","play_id":"link to audit table"}}}' (length=438)

【问题讨论】:

  • 这是一个有效的 json 字符串,但您必须让 php 将其作为对象读取才能执行您想要执行的操作(json_decode)

标签: php json couchbase


【解决方案1】:

你必须先json_decode你的数据,因为当你从服务器获取它时它只是一个字符串。

$doc = json_decode($result->value);
echo $doc->server_details->name."\n";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2014-02-20
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多