php - json_decode ile birleştirerek json

2 Cevap php

PHP tek tek birden fazla JSON nesneleri birleştirmek için çalışıyorum. Ben, onları çözme ben tutmak istiyorum kısımlarını ayrıştırma ve benim php sınıfta bir özellik saklayarak, JSON objets yineleme ediyorum.

Benim json düşünürsek aşağıdaki biçimde benzeyen nesneleri:

{
    "lists" : {
        "list" : [
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            } 
        ] 
    } 
}

Sonunda şöyle bir JSON nesne içine her şeyi birleştirmek istiyorum.

{
    "lists" : {
        "list" : [
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            },
            {
                "termA" : 2 ,
                "termB" : "FOO" 
            } 
        ] 
    } ,
    "lists" : {
        "list" : [
            {
                "termA" : 4 ,
                "termB" : "BAR" 
            },
            {
                "termA" : 4 ,
                "termB" : "BAR" 
            } 
        ] 
    } 
}

Ben iteratrivley çağrılan bir işlev benim sınıf içinde bir özellik dizileri saklamak çalışıyorum:

   private function parseData($json){
    	$decodeData = json_decode($json);
            $list = $decodeData->lists;
    	$this->output .= $list
    }

Ancak ben "$ this-> çıktı. = $ Liste" satırında sırasında aşağıdaki hatayı alıyorum.

Sınıf stdClass Object dizeye dönüştürülür olamazdı

Şu anda $ this-> çıkış yok başlangıç ​​değeri vardır. Ne geçici "liste" dizileri depolamak ve daha sonra json nesneleri tüm geçtikten sonra bunları yeniden biçimlendirmek için en iyi yolu olabilir?

Teşekkürler.

2 Cevap

Sen yakın:

private function parseData($json){
  $decodeData = json_decode($json);
  $list = $decodeData['lists'];
  $this->output .= $list
}
{
    "lists" : {
      ...
    } ,
    "lists" : {
      ...
    } 
}

Bu anlamlı / geçerli JSON değil. Iki kez (lists) içinde aynı anahtar ile bir karma var. Bunu nasıl ele alacak?