Format de données léger - JSON
Je ne supporte vraiment pas ces mathématiques aujourd'hui
Changeons d'avis et écrivons sur le front-end
Écrivons un peu de connaissances sur JSON aujourd'hui
Il y a très, très longtemps, XML était la norme pour transmettre des données sur Internet
Mais tout le monde pense généralement que XML est trop encombrant
Plus tard, avec le développement du Web
les gens ont trouvé que JSON était plus pratique à utiliser comme sous-ensemble de la syntaxe JavaScript
Donc JSON C'est devenu un standard
Maintenant, tout le monde utilise JSON comme format de données pour la communication
Syntaxe de base JSON
(JSON : Notation d'objet JavaScript, Représentation d'objet JavaScript)
La syntaxe JSON est grossièrement divisée en trois types de valeurs
Valeurs de type simple : peuvent représenter des chaînes , nombres, valeurs booléennes et null
Objet : type de données complexe, représentant des paires clé-valeur non ordonnées
Array : type de données complexe , représentant une liste de valeurs ordonnées
Notez que JSON ne prend pas en charge les valeurs indéfinies et ne prend pas en charge les fonctions
valeurs de type simple
Une seule valeur de type de base peut également être considérée comme JSON
Syntaxe et JavaScript identiques
Il n'y a qu'une seule chose à noter
Dans notre JavaScript, les chaînes peuvent être représentées par des guillemets doubles ou des guillemets simples
Mais le format de chaîne en JSON doit utiliser des guillemets doubles
objet
Puisque JSON est un sous-ensemble de la syntaxe JavaScript
, je parlerai principalement des différences
Premièrement, prenons un aperçu de notre format de déclaration littérale d'objet couramment utilisé
var man = { name: 'payen', sex: 'male', age: 19};
Nos objets JavaScript peuvent ajouter ou non des guillemets
à leurs attributs (afin de distinguer les objets ordinaires des objets JSON, ils ne sont généralement pas cités)
Mais en JSON, les objets nécessitent des guillemets (doubles) pour ajouter des attributs
Nous L'objet ci-dessus peut également être écrit comme ceci en JavaScript, ce qui est tout à fait équivalent à
var man = { "name": "payen", "sex": "male", "age": 19};
Utiliser JSON pour représenter. l'objet ci-dessus est
{ "name": "payen", "sex": "male", "age": 19}
(Il n'y a pas de notion de variables en JSON, et il n'y a pas de séparation.)
Bien entendu, la valeur d'un objet en JSON peut aussi être un objet
Quelle que soit la complexité du JSON, les clés (propriétés) de l'objet doivent être entourées de guillemets (doubles)
Array
Bien que dans notre JavaScript, les tableaux appartiennent strictement aux objets
, nous les traitons généralement différemment
Notre méthode commune de déclaration des littéraux de tableau
var value = [123, 'abc', true];
JSON a également la même syntaxe
[123, "abc", true]
Encore une fois, JSON n'a pas de variables et points-virgules
De manière générale, les tableaux et les objets sont les formes les plus externes de JSON
Grâce aux tableaux, aux objets et aux types simples, les valeurs peuvent construire divers formats de données JSON
Analyse JSON et sérialisation
La raison la plus importante pour laquelle JSON est populaire
est qu'il est plus facile à analyser en objets utiles
Objet JSON
Les premiers analyseurs JSON utilisaient eval() de JavaScript
Mais c'est risqué et peut exécuter du code malveillant
ES5 standardise l'analyse Le comportement de JSON
définit l'objet global JSON
qui a deux méthodes
stringify ()
Objet JavaScript –> Chaîne JSONparse()
Chaîne JSON–> Objet JavaScript
Le plus l'usage de base est bien sûr
On utilise la variable à convertir comme paramètre Aller dans
Prenons un exemple (cet exemple sera toujours utilisé)
var man = { 'name': "payen", <-- sex: "male", <-- "age": 19, "school": { "name": 'HUST', "sex": undefined, <-- "location": function(){} <-- } } var str = JSON.stringify(man); console.log(str); console.log(typeof str);
Jetons un coup d'oeil à la console print
Vous pouvez voir que JSON.stringify est en réalité renvoyé une chaîne JSON
Nos attributs sans guillemets et entre guillemets simples sont devenus des guillemets doubles
dans la chaîne JSON, et le la valeur de l'attribut n'est pas définie ou l'attribut de la fonction est automatiquement ignoré
(les membres du prototype sont même ignorés)
Bien que JSON.stringify() rencontre une fonction non définie (y compris les symboles ES6) dans l'objet, elle sera automatiquement ignoré
Mais le tableau est différent
Le tableau ne le fait pas L'objet les chasse impitoyablement, mais renvoie null
console.log(JSON.stringify([123, undefined, null, function(){}]));
Nous pouvons utiliser JSON.parse à restaurer dans un objet JavaScript
console.log(JSON.parse(str));
Jetons un coup d'œil à l'utilisation approfondie de ces deux fonctions
stringifier la sérialisation
En plus de remplir les objets à sérialiser, cette méthode également Il peut également accepter deux paramètres
L'un est un filtre, qui peut être un tableau ou une fonction
L'autre est l'indentation du Chaîne JSON qui peut être spécifiée
Filtre
Filtre de tableau
La forme du tableau est relativement simple Nous pouvons spécifier les propriétés de l'objet que nous voulons
ou notre exemple ci-dessus.
var str = JSON.stringify(man,['name','sex']); console.log(str);
Filtre de fonction
La fonction que nous transmettons reçoit deux paramètres, clé (nom de l'attribut) et valeur (valeur de l'attribut)
Le la valeur renvoyée est la valeur de la clé correspondante
Si la fonction renvoie undefined , l'attribut sera ignoré
var str = JSON.stringify(man, function(key, value){ if(key == 'name'){ return 'abc'; } if(key == 'sex'){ return; } return value; }); console.log(str);
注意这里最后一定要写return value;
才能正常显示其他值
如果使用了switch语句就写default: return value;
缩进
空格填充
另一个参数可以填写数字指定缩进的空格数(最大缩进10)
var str = JSON.stringify(man, null, 4); console.log(str);
字符填充
我们也可以指定缩进字符
var str = JSON.stringify(man, null, "- - "); console.log(str);
toJSON()方法
可能有些时候stringify不够满足我们的需求
这时我们可以给对象定义toJSON()方法
(但仍然是调用stringify()方法)
返回自身的JSON的数据格式
原生Date对象有默认toJSON()返回日期字符串(同Date中方法toISOString()结果相同)
我们可以给我们的对象添加一个toJSON属性
var man = { ..., toJSON: function(){ return this.school; } } var str = JSON.stringify(man); console.log(str);
这里再多说一句
很多同学误认为toJSON()返回的是JSON字符串
其实不是的
toJSON()返回的应该是一个适当的值,然后由JSON.stringify()对其进行序列化
所以toJSON()是返回一个能够被字符串化的安全JSON值
下面我们来看看调用JSON.stringify()发生了什么
序列化对象顺序
如果对象有toJSON()并且能获得有效值,优先调用,否则返回对象本身
若有第二个参数,对上一步返回的对象应用过滤器
对上一步返回的每个值进行相应序列化
若有第三个参数,执行序列化
parse解析
JSON.parse也可以接受另一个参数,它是一个函数
类似于上面序列化中过滤器的过滤函数
它被称作还原函数,同样接受键和值作为参数
首先我现在我们例子中的对象添加一个方法
var man = { ..., releaseDate: new Date(2016,11,11) } var str = JSON.stringify(man); console.log(str);
我们看到,由于Date对象存在toJSON()
序列化之后调用了toJSON()
我们看到了这样的字符串
console.log(JSON.parse(str));
这样的数据不是我们想要的
这样的情况我们怎么处理呢?
答案是使用还原函数
可以这样做
var msg = JSON.parse(str,function(key, value){ if(key == 'releaseDate'){ return new Date(value); }else{ return value; } }) console.log(msg.releaseDate.getFullYear(), msg.releaseDate.getMonth(), msg.releaseDate.getDate());
这样我们就可以使用得到的时间数据了
小结
没想到写了这么多
JSON其实很简单
就是一个轻量级的数据格式
可以简化表示复杂数据结构的工作量
主要要掌握ES5的全局对象JSON中的两个方法JSON.stringify()和JSON.parse()
总结几个要记住的重点
JSON.stringify()
用于把JavaScript对象转换为JSON字符串
可填写额外两个参数-筛选数组/替换函数和指定缩进对象遇到undefined、function、symbol(ES6)会忽略
数组遇到undefined、function、symbol(ES6)会返回null
JSON.parse()
用于把JSON字符串转换为JavaScript对象
可填写额外一个参数-还原函数
以上就是轻量级数据格式——JSON的内容,更多相关内容请关注PHP中文网(www.php.cn)!

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

La combinaison de golangWebSocket et JSON : réaliser la transmission et l'analyse des données Dans le développement Web moderne, la transmission de données en temps réel devient de plus en plus importante. WebSocket est un protocole utilisé pour établir une communication bidirectionnelle. Contrairement au modèle de requête-réponse HTTP traditionnel, WebSocket permet au serveur de transmettre activement des données au client. JSON (JavaScriptObjectNotation) est un format léger d'échange de données, concis et facile à lire.

Vous recherchez la distribution Linux parfaite pour donner une nouvelle vie à votre ordinateur ancien ou bas de gamme ? Si oui, alors vous êtes au bon endroit. Dans cet article, nous explorerons certains de nos meilleurs choix de distributions Linux légères spécialement conçues pour le matériel plus ancien ou moins puissant. Que la motivation derrière cela soit de faire revivre un appareil vieillissant ou simplement de maximiser les performances avec un budget limité, ces options légères feront certainement l'affaire. Pourquoi choisir une distribution Linux légère ? Il y a plusieurs avantages à choisir une distribution Linux légère, le premier étant d'obtenir les meilleures performances avec le moins de ressources système, ce qui les rend idéales pour les matériels plus anciens avec une puissance de traitement, une RAM et un espace de stockage limités. Au-delà, avec des ressources plus lourdes

MySQL5.7 et MySQL8.0 sont deux versions différentes de la base de données MySQL. Il existe quelques différences principales entre elles : Améliorations des performances : MySQL8.0 présente quelques améliorations de performances par rapport à MySQL5.7. Ceux-ci incluent de meilleurs optimiseurs de requêtes, une génération de plans d'exécution de requêtes plus efficaces, de meilleurs algorithmes d'indexation et des requêtes parallèles, etc. Ces améliorations peuvent améliorer les performances des requêtes et les performances globales du système. Prise en charge JSON : MySQL 8.0 introduit la prise en charge native du type de données JSON, y compris le stockage, la requête et l'indexation des données JSON. Cela rend le traitement et la manipulation des données JSON dans MySQL plus pratiques et efficaces. Fonctionnalités de transaction : MySQL8.0 introduit de nouvelles fonctionnalités de transaction, telles que l'atome

Les méthodes d'optimisation des performances pour la conversion des tableaux PHP en JSON incluent : l'utilisation d'extensions JSON et de la fonction json_encode() ; l'ajout de l'option JSON_UNESCAPED_UNICODE pour éviter l'échappement de caractères ; l'utilisation de tampons pour améliorer les performances d'encodage de boucle et l'utilisation d'un tiers ; Bibliothèque d'encodage JSON.

La gestion des formats de données XML et JSON dans le développement C# nécessite des exemples de code spécifiques. Dans le développement de logiciels modernes, XML et JSON sont deux formats de données largement utilisés. XML (Extensible Markup Language) est un langage de balisage permettant de stocker et de transmettre des données, tandis que JSON (JavaScript Object Notation) est un format d'échange de données léger. Dans le développement C#, nous devons souvent traiter et exploiter des données XML et JSON. Cet article se concentrera sur la façon d'utiliser C# pour traiter ces deux formats de données et les attacher.

Utilisez la fonction json.MarshalIndent dans Golang pour convertir la structure en une chaîne JSON formatée. Lors de l'écriture de programmes dans Golang, nous avons souvent besoin de convertir la structure en chaîne JSON. Dans ce processus, la fonction json.MarshalIndent peut nous aider à implémenter. sortie formatée. Ci-dessous, nous expliquerons en détail comment utiliser cette fonction et fournirons des exemples de code spécifiques. Commençons par créer une structure contenant des données. Ce qui suit est une indication

Démarrage rapide : méthode Pandas de lecture des fichiers JSON, des exemples de code spécifiques sont requis Introduction : Dans le domaine de l'analyse des données et de la science des données, Pandas est l'une des bibliothèques Python importantes. Il fournit des fonctions riches et des structures de données flexibles, et peut facilement traiter et analyser diverses données. Dans les applications pratiques, nous rencontrons souvent des situations où nous devons lire des fichiers JSON. Cet article expliquera comment utiliser Pandas pour lire des fichiers JSON et joindra des exemples de code spécifiques. 1. Installation de Pandas

Les annotations dans la bibliothèque Jackson contrôlent la sérialisation et la désérialisation JSON : Sérialisation : @JsonIgnore : Ignorer la propriété @JsonProperty : Spécifiez le nom @JsonGetter : Utilisez la méthode get @JsonSetter : Utilisez la méthode set Désérialisation : @JsonIgnoreProperties : Ignorez la propriété @ JsonProperty : Spécifiez le nom @JsonCreator : utilisez le constructeur @JsonDeserialize : logique personnalisée
