有没有一种简单的方法将json编码的数组转换为json编码对象的php数组?

时间:2014-01-08 22:46:29

标签: php arrays json

我有一个类似于

的json字符串
{
  {
    "field": value,
    "other_field": value,
    "object field": {
      "field": stuff
    }
  },
  {
    "field": value,
    "other_field": value,
    "object field": {
      "field": stuff
    }
  }
}

我需要将它转换为json字符串数组,因此输出数组的每个元素都类似于

{
  "field": value,
  "other_field": value,
  "object field": {
    "field": stuff
  }
}

我知道有json_decode(),但这会把整个事情变成一堆嵌套数组,但我只想把它做到顶级。有没有一种简单的方法可以做到这一点,或者我最好解码整个字符串并重新编码每个元素?

3 个答案:

答案 0 :(得分:0)

json_decode( $json )[0]获取第一个数组元素。这满足了您的需求吗?

答案 1 :(得分:0)

我认为你必须重新考虑你正在做的事情,因为它很可疑。以下是您要问的一个解决方案:

<?php

$json = '[ {"foo": 1, "bar": true}, {"foo": 2, "bar": false} ]';
array_map('json_encode', json_decode($json));

// Array
// (
//     [0] => {"foo":1,"bar":true}
//     [1] => {"foo":2,"bar":false}
// )

答案 2 :(得分:0)

你必须解码json字符串,然后编码每个数组元素:

 $arr = json_decode($json);
 $res = array();
 foreach ($arr as $entry) {
     $res[] = json_encode($entry);
 }