Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中调用json_decode后,如何连接并仅打印json对象中的值?_Php_Json - Fatal编程技术网

在php中调用json_decode后,如何连接并仅打印json对象中的值?

在php中调用json_decode后,如何连接并仅打印json对象中的值?,php,json,Php,Json,这是一个模式生成器,显示key:value对 "default": [ { "one": "u0001u0000u0000u0000", "two": "u0002u0000u0000u0000", "three": "u0003u0000u0000u0000" } ] 我想打印的是“默

这是一个模式生成器,显示key:value对

 "default": [
                {
                    "one": "u0001u0000u0000u0000",
                    "two": "u0002u0000u0000u0000",
                    "three": "u0003u0000u0000u0000"
                }
            ]
我想打印的是“默认值”:
[{“U0001U0000U0000U0000U0002U0000U0000U0000U0000U0003U0000U0000U0000U0000U0000”}]

类似地,如果它是一个对象,例如:

"default": [ "a":
                {
                    "one": "u0001u0000u0000u0000",
                    "two": "u0002u0000u0000u0000",
                    "three": "u0003u0000u0000u0000"
                }
            ]
仅连接值并按如下方式打印:

["a": {"u0001u0000u0000u0000u0002u0000u0000u0000u0003u0000u0000u0000"}]
示例代码测试: //此方法获取用户以json格式输入的值。用户也可以使用嵌套的json格式。我上面提到的例子很有效。 然后调用scanForNestedType方法,该方法扫描格式是否包含任何数组、数组>、映射等。。。 扫描嵌套类型后,它在内部调用$this->encodeValues($unit),将用户输入的值从整数转换为字节

以下是一个例子:

用户进入数组 [{“一”:1,“二”:2,“三”:3}]。转换后的结果如下: [ { “一”:u0001u0000u0000u0000, “二”:u00002u0000u0000u0000, “三:u0003u0000u0000u0000 } ]

现在,我可以正确获取每个键的值。我只需要以以下格式打印: [ { U0001U0000U0000U0000U00002U0000U0000U0000U00003U0000U0000U0000U0000U0000 } ]


如果我得到一个工作示例,那就太好了!

您可以使用
json\u decode
将json转换为数组。然后
使用foreach循环内爆
子数组['one'..]

片段

$json1 = '[{"one": "u0001u0000u0000u0000", "two": "u0002u0000u0000u0000", "three": "u0003u0000u0000u0000"}]';
$json2 = '[{ "a": { "one": "u0001u0000u0000u0000", "two": "u0002u0000u0000u0000", "three": "u0003u0000u0000u0000" } }]';
$arr1 = json_decode($json1,true);
$arr2 = json_decode($json2,true);


foreach($arr1 as $data){
    $default1[] = implode($data);
}
$default1 = json_encode($default1, JSON_FORCE_OBJECT);

foreach($arr2 as $key => $child){
    foreach($child as $childKey => $data){
        $default2[$childKey] = implode($data);
    }
}
$default2 = json_encode($default2, JSON_FORCE_OBJECT);

print_r($default1);
print_r($default2);
输出

{"0":"u0001u0000u0000u0000u0002u0000u0000u0000u0003u0000u0000u0000"}
{"a":"u0001u0000u0000u0000u0002u0000u0000u0000u0003u0000u0000u0000"}
生活


现在,您可以对
json\u进行解码
$default1,$default2
以获取php对象/数组。

如果使用
$assoc=TRUE
进行解码,则只需执行一个简单的操作。第二个示例不是有效的json。数组没有命名键。对于第二个示例,您可以使用此格式检查它。默认值你的问题不清楚,因为它不包含任何代码。在问题标题中,您在调用json_decode之后说
,您的意思是您成功地将这个(无效的)json字符串解码为PHP对象,对吗?那么问题是什么?您不知道如何连接这些值,或者您在迭代数组时遇到问题,或者类似的问题?如果您稍作澄清,我们可能会提供帮助,但现在您的问题只定义了输入和所需的输出,将整个编码部分留给我们。@SouravChatterjee请更新问题中的示例,以便大家都清楚,而不是在注释部分发布代码。另外,请显示您迄今为止尝试过的代码。(使用google)研究如何循环数组以及如何使用PHP将一些字符串组合在一起应该是很容易的。逻辑其实并不太复杂,语法也很简单。在要求其他人的空闲时间之前,请表明你自己已经做了一些努力来解决这个问题。谢谢,非常感谢Smartpal。这就是我要找的。但是,有没有办法取下钥匙?例如,以以下格式显示结果:[{“U0001U0000U0000U0000U0000U00002U0000U0000U0000U0003U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000U0000”}]您的预期结果不是有效的json。但是,您可以使用preg_replace!
{"0":"u0001u0000u0000u0000u0002u0000u0000u0000u0003u0000u0000u0000"}
{"a":"u0001u0000u0000u0000u0002u0000u0000u0000u0003u0000u0000u0000"}