Maison  >  Article  >  interface Web  >  Exemple d'analyse de la sérialisation et de la désérialisation des objets Json et des chaînes Json

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

WBOY
WBOYavant
2022-08-08 15:40:342126parcourir

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}];

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

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

       b4b38e33757a6497aa8690936b905cc1
            05a8acc5c31084a4f61ade01873802cacom.fasterxml.jackson.core192ca2f7b8c770b01c8f81e6bdd5b947
            9bc4cbb67f66e148869423c0d27e5f90jackson-databindb68fb17cb904a46b73e6272850323873
            3d689bd3819ead35ed794427bd12f4592.8.383a577b3f930c490b31329be5e672d0b
        09a0e22e5aaafd848ae04665be625b91
//类属性,

private static final ObjectMapper MAPPER = new ObjectMapper();

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

MAPPER.writeValueAsString(userMapList);

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

MAPPER.readValue(你要反序列化的json字符串,new TypeReference5ffa1bc620359d13a5b754cd7e8e7c40() {});

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’
}

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}
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}

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”}}
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”
}
}

【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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer