php - 检查属性是否存在 - 将 json 转换为 stdObject,然后将 value 或 null 插入 db

标签 php database json api codeigniter

我正在调用一个 API 并处理一个 JSON 响应,然后将其解码为一个 stdObject。然后我用值或 NULL 将记录插入到数据库中。但是我发现我的请求并不总是返回一个值

例子:

[1] => stdClass Object
(
    [created_at] => Wed, 26 Oct 2011 09:58:47 +0000
    [entities] => stdClass Object
        (
        )

    [from_user] => powpowpow
    [from_user_id] => 12345
    [from_user_id_str] => 12345
    [geo] => 
    [location] => UK
    [id] => 1245
    [id_str] => 12345
    [iso_language_code] => en
    [metadata] => stdClass Object
        (
            [result_type] => recent
        )

    [profile_image_url] => http://a3.twimg.com/profile_images//.jpg
    [source] => <a href="http://twitter.com/">web</a>
    [text] => some message!
    [to_user_id] => 
    [to_user_id_str] => 
)

我发现有些属性并没有在每次调用时返回,location、to_user_id 和 screen_name(在这个调用中甚至没有返回)

我所做的是创建一个方法;

function _nullify($var){
    if(isset($var)){
        return $var = empty($var) ? NULL : $var;
    } else {
        return NULL;
    }
}

这应该允许我检查该属性是否存在,如果存在则返回它,否则返回 NULL,以便我可以将其输入到数据库中

不过这个方法好像不行。

希望大家帮帮忙

非常感谢,

安迪

最佳答案

如我所见,您正在尝试检查对象中是否存在键, 您可以使用 PHP 的 property_exists的功能。

function _nullify($object, $key){
    if(property_exists($object, $key))
        return empty($object->$key) ? NULL : $object->$key;
    else
        return NULL;
}

晒。

关于php - 检查属性是否存在 - 将 json 转换为 stdObject,然后将 value 或 null 插入 db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901216/

相关文章:

php - 你如何让 url 以斜杠结尾显示?

php - 如何在 laravel 中创建 TEMPORARY 表,插入记录和检索

java - 从 xml 字符串中删除非法标记(以数字开头的节点)

java - 如何找到SD卡的位置

php - 通过 php 确认对 sql 数据库的更改和添加?

ios - JSON解析UITableViewController

json - spark 如何从 JSON 推断数值类型?

javascript - PHP AJAX - &lt;input&gt; 元素可以像 <form> 一样具有 "action"吗?

php - 在while循环PHP中获取两个相邻的图像

ruby-on-rails - rails 4 : Re-Migrating all Migrations to Schema