J'ai eu une situation où je voudrais lire des données au format JSON via PHP, mais j'ai des problèmes pour comprendre comment je dois construire l'objet Javascript pour créer le format JSON dynamiquement.
Mon scénario est le suivant:
<input title="QA" type="text" class="email">
<input title="PROD" type="text" class="email">
<input title="DEV" type="text" class="email">
Le code Javascript que j'ai jusqu'à présent passe par chaque entrée saisit les données, je suis cependant incapable de comprendre comment traiter à partir de maintenant.
var taskArray = {};
$("input[class=email]").each(function() {
var id = $(this).attr("title");
var email = $(this).val();
//how to create JSON?
});
Je voudrais obtenir la sortie suivante si possible.
[{title: QA, email: '[email protected]'}, {title: PROD, email: '[email protected]'},{title: DEV, email: '[email protected]'}]
Où l'e-mail est acquis par la valeur du champ de saisie.
la source
Je ne pense pas que vous puissiez transformer des objets JavaScript en chaînes JSON en utilisant uniquement jQuery, en supposant que vous ayez besoin de la chaîne JSON en sortie.
Selon les navigateurs que vous ciblez, vous pouvez utiliser la
JSON.stringify
fonction pour produire des chaînes JSON.Voir http://www.json.org/js.html pour plus d'informations, vous pouvez également y trouver un analyseur JSON pour les navigateurs plus anciens qui ne prennent pas en charge l'objet JSON de manière native.
Dans ton cas:
var array = []; $("input[class=email]").each(function() { array.push({ title: $(this).attr("title"), email: $(this).val() }); }); // then to get the JSON string var jsonString = JSON.stringify(array);
la source
Peut-être que cela aidera, je préférerais le JS pur dans la mesure du possible, cela améliore considérablement les performances car vous n'aurez pas beaucoup d'appels de fonction JQuery.
var obj = []; var elems = $("input[class=email]"); for (i = 0; i < elems.length; i += 1) { var id = this.getAttribute('title'); var email = this.value; tmp = { 'title': id, 'email': email }; obj.push(tmp); }
la source
idem de l'exemple ci-dessus - si vous recherchez simplement json (pas un tableau d'objets), utilisez simplement
function getJsonDetails() { item = {} item ["token1"] = token1val; item ["token2"] = token1val; return item; } console.log(JSON.stringify(getJsonDetails()))
cette sortie sera imprimée comme (un json valide)
{ "token1":"samplevalue1", "token2":"samplevalue2" }
la source