基于jQuery的一个扩展form序列化到json对象_jquery
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
这个function对于普通的对象转换是足够的,但是如果出现对象内部又包含子对象的情形就不能支持了。
例如我有这样的一个form表单:
对应到server端上的domain class是这样的:
public class DummyProduct {
private DummyCategory category;
private String name;
public DummyCategory getCategory() {
return category;
}
public void setCategory(DummyCategory category) {
this.category = category;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class DummyCategory {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
如果想把表单数据序列化成跟server端domain class匹配的json字符串,就可以使用我下面的这个扩展
/** @serializedParams looks like "prop1=value1&prop2=value2".
Nested property like 'prop.subprop=value' is also supported **/
function paramString2obj (serializedParams) {
var obj={};
function evalThem (str) {
var attributeName = str.split("=")[0];
var attributeValue = str.split("=")[1];
if(!attributeValue){
return ;
}
var array = attributeName.split(".");
for (var i = 1; i var tmpArray = Array();
tmpArray.push("obj");
for (var j = 0; j tmpArray.push(array[j]);
};
var evalString = tmpArray.join(".");
// alert(evalString);
if(!eval(evalString)){
eval(evalString+"={};");
}
};
eval("obj."+attributeName+"='"+attributeValue+"';");
};
var properties = serializedParams.split("&");
for (var i = 0; i evalThem(properties[i]);
};
return obj;
}
$.fn.form2json = function(){
var serializedParams = this.serialize();
var obj = paramString2obj(serializedParams);
return JSON.stringify(obj);
}
使用起来大概像这个样子:
var json = $("#testform").form2json();
alert(json);

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Flexjson est une bibliothèque légère permettant de sérialiser et de désérialiser des objets Java vers et depuis le format JSON. Nous pouvons sérialiser une liste d'objets en utilisant la méthode serialize() de la classe JSONSerializer. Cette méthode effectue une sérialisation superficielle sur l'instance cible. Nous devons passer une liste d'objets de type liste en paramètre à la méthode serialize(). Exemple de syntaxe publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerial

L'impact de la sérialisation sur les performances Java : le processus de sérialisation repose sur la réflexion, ce qui affectera considérablement les performances. La sérialisation nécessite la création d'un flux d'octets pour stocker les données d'objet, ce qui entraîne des coûts d'allocation de mémoire et de traitement. La sérialisation d'objets volumineux consomme beaucoup de mémoire et de temps. Les objets sérialisés augmentent la charge lorsqu'ils sont transmis sur le réseau.

Guide de sérialisation et de désérialisation de la bibliothèque C++ Sérialisation : création d'un flux de sortie et conversion au format d'archive. Sérialisez les objets dans l'archive. Désérialisation : crée un flux d'entrée et le restaure à partir du format d'archive. Désérialisez les objets de l'archive. Exemple pratique : Sérialisation : Création d'un flux de sortie. Créez un objet d'archive. Créez et sérialisez des objets dans l'archive. Désérialisation : créez un flux d'entrée. Créez un objet d'archive. Créez des objets et désérialisez-les à partir de l'archive.

Compétences en traitement de données PHP : Comment utiliser les fonctions de sérialisation et de désérialisation pour implémenter la sérialisation et la désérialisation des données. La sérialisation et la désérialisation sont l'une des compétences de traitement de données couramment utilisées en informatique. En PHP, nous pouvons utiliser les fonctions serialize() et unserialize() pour implémenter des opérations de sérialisation et de désérialisation de données. Cet article vous donnera une introduction détaillée sur la façon d'utiliser ces deux fonctions et fournira des exemples de code pertinents. 1. Qu'est-ce que la sérialisation et la désérialisation dans la programmation informatique ?

@JsonPropertyOrder est une annotation utilisée au niveau de la classe. Il prend comme attribut une liste de champs qui définit l'ordre dans lequel les champs apparaissent dans la chaîne générée par la sérialisation JSON de l'objet. Les propriétés incluses dans la déclaration d'annotation peuvent être sérialisées en premier (dans l'ordre dans lequel elles sont définies), suivies de toutes les propriétés non incluses dans la définition. Syntaxe public@interfaceJsonPropertyOrder Exemple importcom.fasterxml.jackson.core.*;importcom.fasterxml.jackson.databind.*;importcom.fasterxml.jac

Les interfaces ne peuvent pas être sérialisées directement. Les classes abstraites peuvent être sérialisées, mais seulement si elles ne contiennent pas de champs non statiques et non transitoires ou si elles ne remplacent pas les méthodes writeObject() et readObject(). Des instances spécifiques peuvent être implémentées via des classes concrètes qui implémentent l'interface. ou remplacez writeObject() et readObject, implémentation de la classe abstraite de la méthode ().

Flexjson est une bibliothèque légère permettant de sérialiser et de désérialiser des objets Java vers et depuis le format JSON. Nous pouvons également sérialiser une Map en utilisant la méthode serialize() de la classe JSONSerializer, qui effectue une sérialisation superficielle sur l'instance cible. Exemple de syntaxe publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerializeMapTest{ publ

Les types de fonctions GoLang peuvent être sérialisés et désérialisés via le package encoding/gob. Sérialisation : enregistrez un type personnalisé et utilisez gob.NewEncoder pour coder le type de fonction dans un tableau d'octets. Désérialisation : utilisez gob.NewDecoder pour désérialiser les types de fonctions des tableaux d'octets.
