- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 json_decode 组合一些 json 对象,然后重新编码。我的 json 看起来像:
{
"core": {
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
]
}
}
我有一些这样的 json 对象,我想只组合每个 json 对象的“segement”数组来得到这样的东西:
{
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
],
"segment": [
{
"id": 5,
"name": "test3"
},
{
"id": 8,
"name": "test4"
}
]
}
现在在我的 php 代码中,我正在解码 json,将每个“段”数组存储到一个字符串中,然后对 json 进行编码。
public function handleJSON($json){
$decodeData = json_decode($json);
$segment =$decodeData->core;
return $segment;
}
public function formatJSON(){
$segments = "";
for ($i = 0; $i < count($json);$i++)
{
$segments .= handleJSON($json[$i]);
}
echo json_encode($segments);
}
当我这样做时,我收到一个错误:类 stdClass 的对象无法转换为字符串
然后我尝试使用将它们存储在数组中:
public function formatJSON(){
$segments = array();
for ($i = 0; $i < count($json);$i++)
{
$segments[$i] = handleJSON($json[$i]);
}
echo json_encode($segments);
}
这次,我没有收到错误,但它将我的整个组合 json 对象存储在数组括号中。我怎样才能让它只返回 JSON 对象,而不封装在数组中?
最佳答案
我认为一种方法是利用 json_decode 的第二个参数, 关联
:
"When TRUE, returned objects will be converted into associative arrays."
我发现通常处理关联数组比处理 stdClass
类更容易。
$str = '{
"core": {
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
]
}
}';
print "<pre>";
print_r(json_decode($str));
print "</pre>";
print "<pre>";
print_r(json_decode($str,true));
print "</pre>";
这首先产生对象版本,然后是关联数组:
stdClass Object
(
[core] => stdClass Object
(
[segment] => Array
(
[0] => stdClass Object
(
[id] => 7
[name] => test1
)
[1] => stdClass Object
(
[id] => 4
[name] => test2
)
)
)
)
Array
(
[core] => Array
(
[segment] => Array
(
[0] => Array
(
[id] => 7
[name] => test1
)
[1] => Array
(
[id] => 4
[name] => test2
)
)
)
)
我想我会做类似的事情,创建新的空白数组,解码为关联数组,抓取段成员并将它们拼接到新的空白数组中。所以:
$segments = array();
// assuming you had a bunch of items in the $strings array
foreach ($strings as $str) {
$item = json_decode($str,true);
$segments = array_merge($item['core']['segment], $segments);
}
现在,您可以像这样将其编码为 json:
$final_json = json_encode(array('segments'=>$segments));
关于PHP json_decode问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1713754/
json_decode($var) 和 (object)json_decode($var, true) 有区别吗? 当最近在 Joomla virutemart 中处理某段代码时,我遇到了一个困惑的情
我正在尝试使用 PHP 和 json_decode 解析 JSON 文件,但是当返回的 JSON 是命名空间时,我很难做到这一点。例如: $json_ouput = json_decode($json
我返回了这个 RAW JSON,当我应用 json_decode 以数组形式访问数据时,它会将 trackingNumber 转换为科学记数法。有没有什么可能的方法可以避免这种情况而不会影响/舍入整数
当我将带有前导零数字的电话号码(即字符串)传递给 json_decode 时, 它删除第一个零字符并将其转换为浮点数。 $string = '09178882356'; //dynamic value
由于某种原因,我无法从返回的 jsonp 字符串中获取信息, add ?vorto=TheWordYouWant to the end of this website"; echo $Help;
我只是从 php 文档测试这个示例 ( http://au2.php.net/manual/en/function.json-decode.php ) 这是我的代码: ';?> 但它只返回一个空数组。
我有一个包含多个对象的 JSON 数组,并尝试使用 json_decode 来创建关联数组。 示例数据 $json='[{ type: "cool", cate
我有类似以下代码: 结果如下: int(9223372036854775807) 当然,这不是 json 字符串,我希望 json_decode 返回 null 或 false,如 manual 中
我有一个以下 JSON 字符串,通过 AJAX 到达服务器: {"Names":"[{0:'asdasd'}]","Values":"[{0:'ad'}]"} 如您所见,名称和值旨在保存一个数组。问题
通过示例最容易解释: var_dump(json_decode("[{'a':'b'},{'c':'d'},{'e':'f'}]")); // NULL var_dump(json_decode('[
我正在使用来自 deepl.com 的 API,它提供自动翻译。我通过 cURL 调用 API,并得到一个 json 字符串作为返回,该字符串看起来没问题,但由于某种原因无法被 PHP 解码。 让我首
我有这样编码的 JSON 对象 { "id": "", "steps": [ { "target": "purchase_order_items_itemma
这个问题在这里已经有了答案: Get information from JSON (2 个答案) 关闭 11 个月前。 我一直在尝试使用来自各种服务的一些 API,目前我正在尝试检索有关 vimeo
我有一个包含多个对象的 JSON 数组,并尝试使用 json_decode 来创建一个关联数组。 示例数据 $json='[{ type: "cool", ca
我有类似以下代码: 结果如下: int(9223372036854775807) 当然,这不是 json 字符串,我希望 json_decode 返回 null 或 false,如 manual 中
通过示例最容易解释: var_dump(json_decode("[{'a':'b'},{'c':'d'},{'e':'f'}]")); // NULL var_dump(json_decode('[
我有一个像这样的二维对象数组: function test(n){ this.id = n; } var testArray= new Array(2); for(i = 0; i 但是我得到一
我正在以这种方式在 javascript 中创建一个 json jsonArr.push({ position: 'WN', wind: windWN,
$objetos = json_decode($_POST['objetos']); $query1 = "DELETE FROM `usuarioObjeto` WHERE idusuario="
我刚刚开始真正使用 json,并尝试尽我所能地学习!我想分享我所做的这项工作,我觉得这可能需要一些改进,如果不是大部分的话。 好吧,我使用 twitch.tv REST_API。这是我的代码。基本上我
我是一名优秀的程序员,十分优秀!