2012-03-29 4 views
1

J'ai un fichier json statique (ci-dessous) et je crée également un nouveau fichier json via les données de formulaire php récupérées.JSON ajouter deux champs ensemble

Les deux fichiers ont la même structure de données et je voudrais les combiner ensemble si cela est possible?

 { 
      "year": [{ 
       "yr": "2012", 
       "items": [{ 
         "id": 2, 
         "title": "lorem epsum", 
         "desc": "lorem epsum", 
         "img": "myimage.jpg" 
        }], 
       "aid": 2 
       }] 
     }; 

les deux fichiers ont les données suivantes que je voudrais fusionner:

 "yr": "2012", 
     "items": [{ 
       "id": 2, 
       "title": "lorem epsum", 
       "desc": "lorem epsum", 
       "img": "myimage.jpg" 
      }], 
     "aid": 2 

Alors, comment pourrais-je ajouter/fusionner ces deux fichiers ensemble? PHP ou JS ou les deux? Merci

+5

Pourquoi fusionner le même contenu? –

+0

il ne sera pas le même contenu, les détails seront différents, j'ai un fichier json qui a déjà eu des données dedans et puis j'ai aussi besoin de lui ajouter des données qui sont dynamiquement cretaed par php et retourné, par exemple avec l'année: 2012 sera plusieurs de ces –

Répondre

1

La notation JSON (Javascript Object Notation) combine des objets Javascript et des tableaux Javascript.

Javascript Tableaux utilisant ([]), Objets Javascript ({}).

Si vous souhaitez ajouter vos données,

vous pouvez utiliser la méthode de poussée de tableau sur une partie qui contient des tableaux de votre objet.

 

$(document).ready(function(){ 
     data= { 
      "year": [{ 
       "yr": "2012", 
       "items": [{ 
         "id": 2, 
         "title": "lorem epsum", 
         "desc": "lorem epsum", 
         "img": "myimage.jpg" 
        }], 
       "aid": 2 
       }] 
     }; 

     data2= { 
      "yr": "2013", 
      "items": [{ 
       "id": 2, 
       "title": "lorem epsum", 
       "desc": "lorem epsum", 
       "img": "myimage2.jpg" 
      }], 
      "aid": 2 
      } 
     data.year.push(data2); 

     $.each(data.year, function(){ 
      console.log(this.yr); 
     }); 
}); 
 
+0

grand merci pour cela m'a sauvé un peu de temps :-) –

+0

vous êtes les bienvenus. agréable de vous aider –

0

Si vous utilisez jQuery, vous pouvez essayer cela avec

jQuery.extend(target, object) 

(bien sûr après avoir analysé le fichier JSON à un objet Javascript avec JSON.parse() ...)

Voir la documentation de jQuery: http://api.jquery.com/jQuery.extend/

Questions connexes