検索
ホームページウェブフロントエンドjsチュートリアルJSON リテラシーポスト JSON.as クラスtutorial_json

補足内容:
FlashVarsを使用してHTMLからjson文字列を渡す場合、文字列内の最初のダブルクォーテーション以降(ダブルクォーテーションも含む)の内容は送信されません。また、Adobe公式の場合はダブルクォーテーションが必須となります。 json.as クラス パッケージの josn オブジェクトを解析するため、長い間取り組んだ後、文字列置換関数を使用しました。
メソッドについては別の記事を参照してください:
HTML は二重引用符でパラメータを渡します。解決策
------------------------------------------- - ---------------------------------------
見てください以下の内容を再印刷してください。前の内容は、お客様のニーズに基づいた補足的な内容です:
----------------------------- --- --------------------------------------------------- --- ----
昨日、JSON の AS3 解析クラスを投稿しました。皆さんのコメントから判断すると、このことについてまだ知らない人が多いため、リテラシーに関する投稿を作成しました。
実際、AS の XML 解析はすでに非常に優れているため、AS で json を使用することは必須でも良い選択でもありません。しかし、なぜ json の使用を検討する必要があるのでしょうか。次の点があります。
json は次のとおりです。単純なテキスト メソッド (例: firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com) および XML (BrettMcLaughlin brett@ newInstance.com) は、データ量が少なく、データ形式が明確であるという、テキストと XML の中間的な利点を備えた形式です。
json は JavaScript Object Notation の略で、JavaScript から来たものであることを意味します。現在、ajax の人気により、ほとんどの Web サイトが ajax モードと構造を採用するため、データ送信には json が第一の選択肢になります (テキスト メソッドは単純すぎて、データ量が多いと理解できません。xmlメソッドには大量のデータがあり、解析する必要があるため、サーバーの負荷が増加します)、Web サイトが ajax アーキテクチャに基づいてインターフェイスのフレックス/フラッシュ バージョンを開発している場合、json を使用するとサーバー側のプログラムが最小限に抑えられます。変化します。
サーバー側には成熟した JSON 解析コードが組み込まれているため (JSON は非常に広く使用されているため)、開発中にサーバー側の解析について心配する必要はありません。
ps: なぜ上記の 3 点しか思いつかないのですか? 理由が少なすぎますか?
JSON とは何ですか?
簡単な JSON の例
最も単純な形式では、次の JSON を使用して名前と値のペアを表すことができます:

コピーコード コードは次のとおりです:

{ "firstName": "Brett" }

コードをコピー この例は非常に基本的なものです実際には、同等のプレーン テキストの名前と値のペアよりも多くのスペースを占有します:
コードをコピー コードは次のようになります:

firstName=Brett

コードをコピー ただし、複数の名前と値のペアを文字列化すると、JSON が真価を発揮します。まず、次のような複数の名前と値のペアを含むレコードを作成できます:
コードをコピー コードは次のとおりです:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

コードをコピーします構文の観点から見ると、これは名前と値のペアに比べて大きな利点ではありませんが、この場合は JSON の方が使いやすく、読みやすいです。たとえば、上記の 3 つの値が同じレコードの一部であることが明らかになり、中括弧によって値が何らかの関連性を示します。
値の配列
一連の値を表す必要がある場合、JSON を使用すると読みやすさが向上するだけでなく、複雑さも軽減されます。たとえば、人の名前のリストを表現したいとします。 XML では、多くの開始タグと終了タグが必要です。一般的な名前と値のペア (このシリーズの以前の記事で説明したものなど) を使用する場合は、独自のデータ形式を作成するか、キー名を person1 の形式に変更する必要があります。 -ファーストネーム。
JSON を使用する場合は、中括弧で複数のレコードをグループ化するだけです:
コードをコピー コードは次のとおりです:

{ "people": [
{ "firstName": "Brett", "lastName": "McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold ", "メール": "elharo@macfaq.com" }
]}

コードをコピーします。これは理解するのが難しくありません。この例では、people という変数が 1 つだけあり、その値は 3 つのエントリの配列であり、各エントリは名、姓、電子メール アドレスを含む個人のレコードです。上の例は、括弧を使用してレコードを単一の値に結合する方法を示しています。もちろん、同じ構文を使用して複数の値 (それぞれに複数のレコードが含まれる) を表すこともできます。 { "programmers": [
Copy code コードは次のとおりです:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ " firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold ", "email ": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre" : "サイエンス フィクション " },
{ "firstName": "Tad", "lastName": "Williams", "genre": "ファンタジー" },
{ "firstName": "Frank", "lastName ": "ペレッティ ", "ジャンル": "キリスト教小説" }
],
"ミュージシャン": [
{ "firstName": "Eric", "lastName": "Clapton", "楽器": "ギター " },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

コードをコピー ここで最も注目すべき点は、複数の値を表す機能であり、それぞれの値には複数の値が含まれます。ただし、レコード内の実際の名前と値のペアは、メイン エントリ (プログラマ、作成者、ミュージシャン) ごとに異なる場合があることにも注意してください。 JSON は完全に動的であるため、JSON 構造の途中でデータの表現方法を変更できます。
JSON 形式のデータを処理するときに従う必要がある事前定義された制約はありません。したがって、同じデータ構造内でデータの表現方法を変更することができ、同じものを異なる方法で表現することもできます。
追記: 上記の例はすべて http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/ からのものです。私は Ajax をマスターしているので、他の人が Ajax を使用している場合にのみ使用します。

ダンダン、先週は仕事が忙しくて、わざわざ使い方をメモすることができませんでした。 ここでは Adob​​e の json クラスの使い方を紹介します。
前回公開した json クラス (http://bbs.actionscript3.cn/thread-1625-1-1.html) には問題があります。これは、それが半完成品。皆さんも怒らないと思いますが、管理人さんは削除することをお勧めします。
今回はAdobeの公式クラスなのでパッケージを修正して使えるようにしました。
以下は比較的単純なチュートリアルです:
1. サーバーからの JSON
サーバーから JSON を取得する方法 (つまり、通信) については詳しく説明しません。取得するものは文字列である必要があります。保存します。 変数serverJSONを入力し、次のように使用します。

コードをコピーします コードは次のとおりです:

import json.*;
var json:Object = new Object();
json = JSON.decode(serverJSON);
json は単純なオブジェクトです。
例を示します:
上記の JSON からのコードの一部:


コードをコピーします コードは次のとおりです
{ "プログラマー": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName" ": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName": "Harold", "email" : "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "ジャンル": "サイエンス フィクション" },
{ "名": "タッド", "姓": "ウィリアムズ", "ジャンル": "ファンタジー" },
{ "名": "フランク", "lastName": "ペレッティ" , "genre": "キリスト教小説" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}


変数:serverJSON に保存
コード:



コードをコピー コードは次のとおりです:

var serverJSON:String = '{ "プログラマー": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },{ " firstName": "ジェイソン", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": " elharo@macfaq.com" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "SF" },{ "firstName": "Tad", "lastName": "ウィリアムズ", "genre": "ファンタジー" },{ "firstName": "フランク", "lastName": "ペレッティ", "genre": "キリスト教小説" }],"musicians": [ { "firstName": "エリック", "lastName": "クラプトン", "instrument": "ギター" },{ "firstName": "セルゲイ", "lastName": "ラフマニノフ", "instrument": "ピアノ" }]}'
var s:Object = JSON.decode(serverJSON);
//
trace(s.programmers[0].firstName) の使用を開始します;//出力: Brett


それほど単純ではありません。実際、変換後はオブジェクトになり、これらの値にはドット構文を通じてアクセスできます。 XMLはさておき。
2. ローカル オブジェクトは JSON に作成されます
JSON 文字列を自分で記述することもできますが、私たちはオブジェクト指向の世界にいるため、必要なときはすべてオブジェクトになります。オブジェクトは直接使用できます。
例を示します:

コードをコピー コードは次のとおりです:

import json .*;
var myObject:Object = new Object();
myObject.cd = Math.random(); encode( myObject )); //出力: {"ab":"adfsdf","cd":0.0599129400216043}


このようにしてサーバーに渡すことができます。
まとめ: JSON.decode(String) と JSON.encode(Object) の 2 つのメソッドしかありません。これを使用すると、送信量が少なく、データ形式も簡単になります。
実際、XML には当然ながら独自の強みがあり、複雑なデータ構造が出現すると、現時点では JSON を扱うのが難しくなり、XML が第一の選択肢となります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール