Maison > interface Web > js tutoriel > le corps du texte

Exemple d'analyse de la sérialisation et de la désérialisation des objets Json et des chaînes Json

WBOY
Libérer: 2022-08-08 15:40:34
avant
2171 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur javascript, qui présente principalement des problèmes liés aux objets Json. La notation d'objet JavaScript est utilisée pour stocker et échanger des informations textuelles. La syntaxe de JSON est plus puissante que XML Small, plus rapide et plus facile à utiliser. analysons. Jetons-y un coup d'oeil. J'espère que cela sera utile à tout le monde.

Exemple d'analyse de la sérialisation et de la désérialisation des objets Json et des chaînes Json

【Recommandations associées : Tutoriel vidéo javascript, front-end web

Json

JavaScript Object Notation -JavaScript
Syntaxe pour stocker et échanger des informations textuelles, pour la transmission de données, JSON est meilleur que XML Plus petit, plus rapide et plus facile à analyser.

var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},
          {"name": "李四", "age": 24, "gender": true},
          {"name": "王五", "age": 25, "gender": false}];
Copier après la connexion

Chaîne Json

var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串
 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"}
  alert(typeof(b));//string
Copier après la connexion

Sérialisation

Le processus de conversion d'une structure de données ou d'un objet en une chaîne binaire (séquence d'octets) est utilisé pour la transmission de données (convertir les données en chaîne json avec le backend @responseBody est utilisé pour accepter et transmettre des données)

  • Le front-end a des objets json et des chaînes json
  • Le back-end a des objets et des chaînes json

Le back-end est constitué d'objets Java Si vous souhaitez transmettre des données au format JSON, il suffit de le faire. Pour effectuer des opérations de sérialisation.
Les objets Java doivent être sérialisés avant de pouvoir être transmis sur le réseau ou enregistrés sur le disque dur.
Après sérialisation, il devient une chaîne json. Il est sérialisé via le framework de sérialisation de Jackson

Dans le backend, en ajoutant l'annotation @reponseBody sur le contrôleur, l'objet java obtenu de la couche de service est converti au format json. objet et transféré au Front-end
Ajoutez @reponseBody avant les paramètres de requête du contrôleur pour recevoir les données au format json passées par le front-end

Sérialisation et désérialisation du front-end

  • Sérialiser l'objet json en un json string : JSON.stringify(json Object) – le front-end sérialise les données et les transmet au back-end
  • Désérialisation : désérialise la chaîne json en un objet : JSON.parse(str) – les données sérialisées transmises par le back-end

Sérialisation et désérialisation à la fin

  • La sérialisation est un objet Java -> chaîne json.
  • La désérialisation est un objet json string->java

Première méthode de sérialisation et de désérialisation du backend

Cet objet ObjectMapper est sous le package jackson, qui est sa dépendance

       <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>
Copier après la connexion
//类属性,

private static final ObjectMapper MAPPER = new ObjectMapper();

//序列化-----userMapList是List<user>的格式,现在我们需要将List集合序列化为json字符串

MAPPER.writeValueAsString(userMapList);

//反序列化---json格式的字符串要反序列化为对象

MAPPER.readValue(你要反序列化的json字符串,new TypeReference<要反序列化为什么对象类型,例如 User.class>() {});
Copier après la connexion

Sérialisation : Convertir des objets en JS au format Json, deux paramètres de sérialisation : filtre et options.

var person = {
username: ‘luohao’,
password: 123456,
location: ‘whu’
}
Copier après la connexion

Le paramètre est un tableau. Seuls les attributs qui apparaissent dans le tableau seront sérialisés et les autres attributs seront ignorés.

var json = JSON.stringify(person, [‘username’, ‘password’]);
console.log(json);
{“username”:“luohao”,“password”:123456}
Copier après la connexion
var person = {
username: ‘luohao’,
password: 123456,
location: ‘whu’,
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘location’: return undefined;
case ‘hometown’: return undefined;
default: return value;
}
});
console.log(json);

{“username”:“luohao”,“password”:123456}
Copier après la connexion

Le troisième paramètre de JSON.stringify() représente le nombre d'espaces indentés, afin que la lisibilité des données transmises soit meilleure.

var person = {
username: ‘luohao’,
password: 123456,
location: {
province: ‘hubei’,
city: ‘wuhan’,
county: ‘qichun’
},
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘hometown’: return undefined;
default: return value;
}
});
console.log(json);
{“username”:“luohao”,“password”:123456,“location”:{“province”:“hubei”,“city”:“wuhan”,“county”:“qichun”}}
Copier après la connexion
var person = {
username: ‘luohao’,
password: 123456,
location: {
province: ‘hubei’,
city: ‘wuhan’,
county: ‘qichun’
},
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘hometown’: return undefined;
default: return value;
}
}, 2);
console.log(json);

{
“username”: “luohao”,
“password”: 123456,
“location”: {
“province”: “hubei”,
“city”: “wuhan”,
“county”: “qichun”
}
}
Copier après la connexion

【Recommandations associées : tutoriel vidéo javascript, front-end web

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
es6
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!