JSON についての深い理解
まず、JS オブジェクトを JSON 文字列にシリアル化する際の JS の一般的な問題を見てみましょう。JSON.stringify を渡した後、次の JS オブジェクトの文字列はどのように見えるでしょうか。急いでコンソールにコピーして貼り付ける必要はありません。まず、コード エディターまたはペーパーを開いて書いて読み、記述後にコンソールの出力を注意深く比較してください。間違いがある場合は、必ずテキスト全体を読んでコメントしてください。ははは。
りー2 番目の質問です。最終的な JSON 文字列の「友達」の名前をすべて大文字に変更したい場合、つまり、「Good」を「GOOD」に、「Man」を「MAN」に変更します。やれ?
上記の 2 つの質問に基づいて、ソースに戻って、JSON とは一体何なのかを考えてみましょう。 JSON はなぜデータ交換が簡単なのでしょうか? JSON オブジェクトと JS オブジェクトの違いは何ですか? JS、JSON.parse、JSON.stringify、および一般的ではない toJSON では、これらの関数のパラメーターと処理の詳細は何ですか?
この「JSON を掘る旅」へようこそ。以下では、次の側面から JSON を理解します:
1 つ目は、「JSON は軽量のデータ交換形式である
」ということです。 次に、よく混同される JSON オブジェクトと JS オブジェクトの違いを見てみましょう。 最後に、JS でのこれらの JSON 関連関数の具体的な実行の詳細を見てみましょう。
-
この全文が、私のような JSON についてほとんど知らない人が、JSON とは何かを明確に説明し、JSON を上手に使用できるようになり、JS オブジェクトを JSON 文字列にシリアライズした後の出力が何になるのかを知るのに役立つことを願っています。コンソールを見ている。
1. JSON は、データ交換に使用される、軽量よりも優れたテキストベースの形式です
JSON の公式紹介にまだアクセスしていない場合は、ここにアクセスしてください。公式紹介の最初と 2 番目の段落では、JSON とは何かを次の点に詳しく説明しています。
1. データ形式
フォーマットとは何ですか?たとえば、身長「160cm」、体重「60kg」の「Two Hundred Six」という人がいて、この人の情報を他の人に伝えたいとします。または他にもたくさんの選択肢があります:
-
name="二百六"&身長="160cm"&体重="60kg"
- 上記のすべての選択肢において、転送されるデータは同じですが、その形式はさまざまであり、JSON はその表現方法の 1 つであることがわかります。
-
2. テキストベースのデータ形式
JSON はバイナリベースのデータではなくテキストベースのデータ形式であるため、JSON が渡されると、JSON の形式に準拠した文字列が渡されます (JSON の形式については、次の章で説明します)。 2 番目の部分)、私たちはそれを「JSON 文字列」と呼ぶことがよくあります。 - 3. 軽量データ形式 JSON が登場する前には、xml と呼ばれるデータ形式があり、現在でも広く使用されていますが、JSON はより軽量です。たとえば、上記の例では、タグ自体が XML を占めていることがわかります。これは、大量のデータを要求して送信する場合に明らかな利点があります。
ご覧のとおり、ここでは同じデータに 3 つの異なる表現形式があります。つまり、フロントエンド JS オブジェクト、送信される JSON 文字列、バックエンド PHP オブジェクトは明らかに同じものではありません。なぜなら、誰もがデータを送信するために JSON を使用しているため、誰もがこのデータ形式を理解でき、他のさまざまな言語環境でデータを交換するのに便利です。
2. JSON と JS オブジェクト間の「噂話」
「JSON は JS のサブセットである」という文をよく聞きますが、JSON 形式に準拠するすべての文字列は js に解析できると、後から発見するまではそう思っていました。
1. 本質的に異なる 2 つのものがなぜこれほど密接に結びついているのですか 「横断歩道」と「横断歩道」は「横断歩道」の縞模様に基づいて表示され、名前が付けられているのと同じように、JSON オブジェクトと JS オブジェクトは本質的にまったく同じものではありません。しかし、横断歩道は生きており、横断歩道は生きています。非生物。 同様に、「JSON」の正式名称は「JavaScript Object Notation」なので、その形式(構文)はJSをベースにしていますが、あくまで形式であり、JSオブジェクトはインスタンス、つまりメモリ上に存在するものです。 冗談ですが、JSON が PHP に基づいている場合、それは PON と呼ばれる可能性があり、その形式は次のようになります ['propertyOne' => 'foo', 'propertyTwo' => 42,]。そうであれば、JSON になるかもしれません。現在では PHP とより密接に関連しています。 また、JSON はテキスト形式なので送信できますが、JS オブジェクトは構文的には厳密になりますが、JS オブジェクトは非常に緩いです。 では、なぜ 2 つの異なるものがこれほど近いのでしょうか? 結局のところ、JSON は JS から進化し、類似した構文を持っているからです。 2. JS オブジェクトと比較した JSON 形式の厳密な構文は何ですか まず、「キーと値のペアとして表現されるオブジェクト」の形式で 2 つの違いを比較してみます。JSON が他の形式でどのように表現されるかについては、比較の後にリストします。ジェソン | JSオブジェクト | |
---|---|---|
キー名
|
二重引用符で囲む必要があります
|
付けないこと、シングルクォーテーションを付けること、ダブルクォーテーションを付けることは許可されています
|
属性値
|
数値 (10 進数)、文字列 (二重引用符)、ブール値、null のみを指定できます。
JSON 要件を満たす配列またはオブジェクトにすることもできます。 |
何でも大好き
|
カンマの問題
|
最後の属性の後にカンマを入れることはできません
|
はい
|
価値
|
先頭の 0 は使用できません。小数点の後に数字が必要です
|
制限なし
|
以上がJSON についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MySQL の一時テーブルは、MySQL データベースに一時データを保存できる特別なテーブルです。一時テーブルは、ユーザーがデータベース内に手動で作成する必要がなく、現在の接続とセッションにのみ存在するという点で通常のテーブルとは異なります。この記事では、MySQL の一時テーブルについて詳しく説明します。 1. 一時テーブルとは何ですか? 一時テーブルは、現在のデータベース セッションにのみ存在する MySQL の特別なタイプのテーブルです。一時テーブルは、ユーザーが事前にデータベースに手動で作成する必要はなく、ユーザーが SELECT、INSERT、または U を実行したときに作成されます。

JS 配列のソートを深く理解するには、sort() メソッドの原理とメカニズム、具体的なコード例が必要です はじめに: 配列のソートは、日常のフロントエンド開発作業で非常に一般的な操作の 1 つです。 JavaScript の配列ソート メソッド sort() は、最も一般的に使用される配列ソート メソッドの 1 つです。しかし、sort() メソッドの原理とメカニズムを本当に理解していますか?この記事では、JS 配列の並べ替えの原理とメカニズムを深く理解し、具体的なコード例を示します。 1.sort()メソッドの基本的な使い方

Go 言語ドキュメントの io.CopyN 関数を深く理解すると、限られたバイト数でのファイル コピーが実装されます。Go 言語の io パッケージには、入力ストリームと出力ストリームを処理するための多くの関数とメソッドが用意されています。非常に便利な関数の 1 つは io.CopyN で、限られたバイト数でファイルをコピーできます。この記事では、この関数を深く理解し、具体的なコード例を示します。まず、io.CopyN 関数の基本定義を理解しましょう。次のように定義されます。 funcCopyN(dstWriter,

Go 言語ドキュメントの flag.Usage 関数のカスタム コマンド ライン ヘルプ情報を深く理解する Go 言語では、コマンド ライン パラメーターを処理するために flag パッケージをよく使用します。 flag パッケージは、コマンド ライン パラメータを解析して処理する便利な方法を提供し、プログラムがユーザーが入力したさまざまなオプションやパラメータを受け入れることができるようにします。 flag パッケージには、コマンド ラインのヘルプ情報をカスタマイズするのに役立つ非常に重要な関数 flag.Usage があります。 flag.Usage 関数は標準ライブラリ fl にあります。

Go は Google によって開発されたプログラミング言語で、2009 年に初めてリリースされ、そのシンプルさ、効率性、学習のしやすさで広く注目を集めています。 Go 言語は、優れた同時パフォーマンスでアプリケーションを処理できるように設計されていると同時に、高速なコンパイル速度と簡潔なコーディング スタイルを備えています。この記事では、Go 言語の技術的特徴と価値を詳しく掘り下げ、具体的なコード例を添付してさらに詳しく説明します。まず、Go 言語の同時実行モデルは非常に強力です。 Go 言語はゴルーチンとチャネルを通じて提供されます

Java プログラミング能力を向上させる: インターフェイス クラスの作成方法を深く理解する はじめに: Java プログラミングでは、インターフェイスは非常に重要な概念です。これはプログラムの抽象化とモジュール化を実現し、コードをより柔軟で拡張可能にするのに役立ちます。この記事では、インターフェイス クラスの作成方法を詳しく説明し、読者がインターフェイスをよりよく理解し、適用できるように具体的なコード例を示します。 1. インターフェースの定義と特徴 Javaにおけるインターフェースは抽象型です。これは、一連のメソッドの仕様を言及せずに定義する契約書や契約書に似ています。

golang ジェネリクスの使用を深く理解するには、具体的なコード例が必要です。はじめに: 多くのプログラミング言語の中でも、ジェネリックスは、型パラメータ化を実現し、コードの再利用性と柔軟性を向上させることができる強力なプログラミング ツールです。ただし、歴史的な理由により、Go 言語ではジェネリック関数の直接サポートが追加されていないため、多くの開発者がジェネリック関数の実装について混乱しています。この記事では、golang でのジェネリックスのいくつかの実装方法について説明し、読者が golan を深く理解できるように具体的なコード例を示します。

Java 開発におけるネットワーク エンコードおよびデコード スキルの深い理解 はじめに 現在のインターネット時代において、ネットワーク プログラミングはさまざまなアプリケーションの開発に不可欠な部分となっています。 Java 開発者にとって、ネットワークのエンコードとデコードのスキルを習得することは、効率的で安定したネットワーク通信を実現するために非常に重要です。この記事では、読者が Java 開発におけるネットワーク エンコードとデコードを深く理解できるように、一般的に使用されるネットワーク エンコードとデコードのテクニックをいくつか紹介します。 1. ネットワークコーディングスキル: バイトストリームと文字ストリームの選択 Java では、入力ストリームと出力ストリームを次のように分けることができます。
