2014-01-08 71 views
0

我有類似有沒有簡單的方法將json編碼的數組轉換爲json編碼的對象的php數組?

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

JSON字符串,我需要把它轉換成JSON字符串數組,所以輸出陣列中的每個元素類似於

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

我知道有json_decode() ,但是這會把整個事物變成一堆嵌套數組,但我只想把它做到頂層。有沒有簡單的方法來做到這一點,或者我最好解碼整個字符串並重新編碼每個元素?

回答

0

你必須將JSON字符串解碼,然後編碼每個數組元素:

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

我怕我不得不這樣做。它看起來效率很低,但它可能比編寫自定義分析器來爲我做這件事更好。 –

0

json_decode($json)[0]得到第一個數組元素。這是否滿足您的要求?

+0

不是真的,我想數組元素保持json-編碼 –

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} 
//) 
+0

我不確定這有什麼可疑的。你能詳細說明嗎? –

+0

腥事是你評論@SirDarius的答案。它對數組成員進行無用的分析。 –