如何生成对象密钥?

用户名

我有一个字符串,我将其解析为JSON子对象。例如,我爆炸了“ me-name-first”:

$string = explode('-', "me-name-first");

在json中,我有以下顺序:

$json = json_decode('{"me":{"name":{"first":"John","last":"Doe"}}}');

我想动态创建订单,并在缺少按键之一的情况下对其进行更新。所以不要写:

$json = $json->{$string[0]}->{$string[1]}->{$string[2]}; // and so on, can be even 99

我想自动执行:

$int = 0;
foreach($json as $key=>$value)
{
    if($key === $string[$int])
    {
        // great, iterate over childs,
        // and once the iteration ends,
        // return the last one's value

        $json = /* Last value, equals to $json->{$string[?]}->{$string[?]}->{$string[?]} ... */;
    }
    $int++;
}

我该怎么做?

我试图用一个函数包装它,但是它返回了一个无限循环。

谢谢

里克登哈恩

您可以迭代$string直到处理了最深的嵌套级别:

$string = explode('-', "me-name-first");
$json = json_decode('{"me":{"name":{"first":"John","last":"Doe"}}}');

$value = $json;
while (count($string) > 0) {
    $key = array_shift($string);
    $value = $value->$key;
}

var_dump($value);
// string(4) "John"

这是假设$string永远是兼容的,绝不会包含的东西,这不是JSON对象的一部分,就像"me-name-middle"name只包含firstlast

如果您需要考虑类似情况,则此解决方案可能过于简单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在鼠标位置生成对象?

来自分类Dev

如何在VS / Resharper中生成对象-对象映射

来自分类Dev

如何在R中生成对象的排列或组合?

来自分类Dev

如何使用实例化在玩家位置旁边生成对象

来自分类Dev

如何使用Fabricate-gem生成对象?

来自分类Dev

如何映射数组并生成对象而不是数组?

来自分类Dev

如何在javascript中生成对象的关联数组?

来自分类Dev

生成对称密钥并存储在android密钥库中

来自分类Dev

LINQ-生成对象的身份

来自分类Dev

以随机的时间生成对象而不会覆盖

来自分类Dev

实例化生成对象远离源?

来自分类Dev

无法计算生成对象的长度

来自分类Dev

调用动态生成对象的构造函数

来自分类Dev

在游戏中随机生成对象

来自分类Dev

在JavaScript中生成对象的动态数组

来自分类Dev

使用for循环生成对象列表

来自分类Dev

从 SOAP WSDL 生成对象结构

来自分类Dev

按顺序生成对象的 JavaScript 按钮

来自分类Dev

使用ursa(nodejs模块)生成对称密钥?

来自分类Dev

如何使用Javascript / HTML5在一行上随机生成对象?

来自分类Dev

在C#中如何在LINQ to xml之后生成对象数组

来自分类Dev

如何同时具有多个具有不同种子的numpy随机生成对象

来自分类Dev

在C#中如何在LINQ to xml之后生成对象数组

来自分类Dev

如何使用Javascript / HTML5在一行上随机生成对象?

来自分类Dev

如何在c#中使用XElement生成对象列表的xml

来自分类Dev

如何在时间延迟 swift 3 spritekit 后生成对象

来自分类Dev

C# Entity Framework - 如何为存储过程的输入参数生成对象类型

来自分类Dev

如何使用元编程通过自动生成对象来避免大量输入?

来自分类Dev

根据对象的对象生成对象的数组

Related 相关文章

热门标签

归档