Créer un vide d'objet JSON à partir d'un objet JSON tableau
J'ai un objet JSON avec deux tableaux d'un objet x
.
Je suis en utilisant angularJS et je tiens à ajouter/modifier/supprimer des objets dans le JSON (tout comme l'angle de TODO application exemple sur angular.org).
Est-il un moyen de créer un nouveau vide (avec la structure de x
mais pas de valeurs) objet JSON de x
, et il suffit de pousser la à la ci-dessus objet JSON tableau?
Comment puis-je aller sur la création d'une valeur vide d'objet JSON de x
?
Mon Exemple d'objet x est (j'ai annulé toutes les valeurs) collé ci-dessous. Donc, mon JSON est juste un tableau de ces objets. Dans Angulaire, je veux que l'utilisateur de remplir un formulaire et de stocker les données dans un objet vide de ce type et de le pousser à la matrice. C'est mon objectif.
Échantillon JSON
[{
"id": null,
"title": "",
"date": {},
"billPayerId": null,
"notes": "Sample Notes",
"billFinances": {
"billPayerId": null,
"billItemEntry": [
{
"itemDescriptionId": 1,
"itemDescription": "",
"userIdAndLiableCost": [
{
"userId": null,
"liableCost": null
},
{
"userId": null,
"liableCost": null
}
]
},
{
"itemDescriptionId": null,
"itemDescription": "",
"userIdAndLiableCost": [
{
"userId": null,
"liableCost": null
},
{
"userId": null,
"liableCost": null
}
]
}
],
"billTotal": null
},
"groupId": null
}];
Je pense que je n'ai pas utiliser la bonne terminologie, mais ce que je voulais dire, c'est que j'ai un JSON var la tenue d'un tableau de type object x. Espérons que cela a du sens maintenant...
vous pouvez toujours créer un "modèle" objet json et le réutiliser quand vous le poussez dans le tableau.
Parlez-vous des données sérialisées structures, réels ou JavaScript structures de données? Je ne peux vraiment pas dire à partir de votre question. Un vide "objet JSON" ressemble
""
en JavaScript.Désolé. Je vais juste poster mon objet json. Sinon, je suis juste confus tout le monde. Il déteste quand quelqu'un fait la même chose pour moi.
OriginalL'auteur user6123723 | 2013-06-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un objet littéral pour stocker tout ce que vous voulez. C'est juste un sac de propriétés (nom) et de valeurs. par exemple,
var order = {};
Puis un littéral de tableau peut être utilisé pour tenir les commandes.
e.g var orders = []; orders.push(order);
Mais il serait tout aussi facile à utiliser un autre littéral d'objet avec l'id qu'une propriété.Mais il semble que vous voulez une sorte de validation. Peut-être quelque chose pour gérer les données de commande et la poignée de la validation, etc. Comme:
OriginalL'auteur Matt Self
Si je suis en train de lire tout cela, je pense que vous pouvez peut-être l'incompréhension comment Angulaire œuvres. Vous n'avez pas à créer un objet vide Angulaire de les utiliser dans un formulaire. Tant que votre formulaire d'entrées de l'utilisation de la notation point, il va générer l'objet pour vous en tant qu'utilisateur remplit les entrées de données.
E. g.
Depuis, nous avons utilisé la notation à points dans le
ng-model
attribut, il crée l'objet, pour nous, en tant que l'utilisateur remplit le formulaire. Les objets générés ressemblerait à ceci après les entrées sont terminées:Maintenant, normalement, une fois que l'utilisateur clique sur enregistrer, vous souhaitez envoyer les données au serveur pour la persistance et vous pouvez alors tout simplement vide de l'objet (par exemple,
$scope.myForm = {};
) pour réinitialiser le formulaire. Mais, pour une raison quelconque, vous voulez construire un tableau d'abord, puis envoyer le tout sur le serveur lorsque complètement terminée (du moins c'est la façon dont je suis le comprendre).Pour ce faire, vous devez obtenir sur le fait que
Objects
etArrays
en JavaScript sont des types référence, de sorte que vous ne pouvez pas pousser l'objet plein de données à un tableau, puis videz l'objet à réinitialiser le formulaire comme cela serait le vider ensuite l'objet au sein de la matrice ainsi, le soufflage de votre banque de données.Je serais personnellement résoudre ce problème avec Angulaire de l'objet de la méthode copy (par exemple
angular.copy(source);
) vu ici: http://docs.angularjs.org/api/angular.copy Cela vous permet de rendre un non-référencé copie d'un objet et l'utiliser sans la mutation de l'objet d'origine. Ainsi, au sein de la "fonction d'enregistrement", vous devez avoir ceci:De cette façon, vous avez sauvé le formulaire complété de données, poussé à la baie et effacé le formulaire de saisie de données. Est-ce répondre à votre question?
OriginalL'auteur Justin L.