ホームページ ウェブフロントエンド jsチュートリアル JSON クライアント側とサーバー側の形式変換_json

JSON クライアント側とサーバー側の形式変換_json

May 16, 2016 pm 06:47 PM
クライアント サービスターミナル フォーマット変換

ここでは、JavaScript の構文から json を導出し、これに基づいて、ajax アプリケーションで JSON を使用する方法を説明します。
JavaScript: array に配列があることは誰もが知っています。その形式は次のとおりです:

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

var Beatles = ["Paul" ,"John","George","Ringo"];

上記の例は配列の形式であり、次と同等です:
コードをコピー コードは次のとおりです:

var Beatles =new Array ["Paul","John"," George","Ringo"];

もう 1 つはオブジェクトです。オブジェクトの作成方法は次のとおりです:
コードをコピー コードは次のとおりです:

var Beatles = {" Country":"England"," YearFormed":1959,"Style":"Rock'n' Roll"}

上記の作成方法は同じです 以下のように作成します:
コードをコピーコードは次のとおりです:

var Beatles = new Object( );
Beatles. Country = "England";
Beatles. YearFormad = 1959; Rock'n'Roll";

他の JavaScript オブジェクトと同様に、属性は '.' または '[ ]' で表すことができます。
オブジェクトには次のように配列を含めることができます:

コードをコピー コードは次のとおりです:
var Beatles = {
"国" :"イングランド",
"YeatFormed": 1959,
"スタイル" : "ロックンロール",
"メンバー":[ " Paul"," John","George","Ringo"]
}

配列にオブジェクトを含めることもできます:

コードをコピー コードは次のとおりです:
var Rockbands =[
{
"Name":"BeatLes",
"郡": "イングランド" 、
"結成年" : 1959 年、
"スタイル" : "ロックンロール" 、
"メンバー" : ["ポール"、"ジョン"、"ジョージ" ,"リンゴ"]
},
{
"名前" ""ローリング ストーンズ",
"国":"イングランド",
"結成年":1962,
"スタイル": "ロックンロール"、
"メンバー" :["ミック"]、"キース"、"チャーリー"、"ビル"]
}
]

JSON の
公式 Web サイトでは、JSON を次のように説明しています。
1. 人が読み書きしやすい
3. 機械が解析し、生成するのが簡単です。 🎜>JSON 構文:
一部の若いプログラマーにとって JSON は読み書きが難しいかもしれませんが、より経験豊富な人々にとってはまだ十分です (個人的な意見)
JSON と JavaScript の構文は似ていますが、それぞれつまり、オブジェクトはオブジェクトではなく文字列として使用する必要がありますが、変換は eval() を使用して行うことができます。安全上の理由から、変換には json.js を使用することをお勧めします。最も基本的なメソッドは次の 2 つです。
JSON.parse(strJSON) は次のとおりです。 JSON 文字列を JavaScript オブジェクトに変換します。
JSON.stringify(objJSON) – JavaScript オブジェクトを JSON オブジェクトに変換するために使用されます。
これはクライアント側でのデータ変換ですが、サーバー側ではどのように行われるのでしょうか?さまざまな言語に対応する非常に優れた変換ライブラリがすでに存在します。私は .net に近いので、C# を使用して JSON のサーバー側変換を実行する方法を説明します。
外国人の兄弟が .net で JSON を変換する方法について非常に優れた記事を書いているのを見ました。 JSON.NET と Microsoft の JavaScriptSerializer が統合されているため、JSON の形式に関係なく、基本的に処理できます。
JSON を変換し、JSON を生成および解析するための簡単なコードを提供します。



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

public string Serialize(object value)
{
Type type = value.GetType();

Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

json.NullValueHandling = NullValueHandling.Ignore;

json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

if (type == typeof(DataRow))
json.Converters.Add(new DataRowConverter());
else if(type == typeof(DataTable))
json.Converters.Add(new DataTableConverter());
else if (type == typeof(DataSet))
json.Converters.Add(new DataSetConverter());

StringWriter sw = new StringWriter();
Newtonsoft.Json.JsonTextWriter ライター = new JsonTextWriter(sw);
if (this.FormatJsonOutput)
writer.Formatting = Formatting.Indented;
else
writer.Formatting = Formatting.None;

writer.QuoteChar = '"';
json.Serialize(writer, value);

文字列出力 = sw.ToString();
writer.Close();
sw.Close();

出力を返す
}

パブリック オブジェクト Deserialize(string jsonText, Type valueType)
{
Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace; = Newtonsoft.Json.MissingMemberHandling.Ignore;
json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

StringReader (jsonText) リーダー = new JsonTextReader(sr);
オブジェクトの結果 = json.Deserialize(reader, valueType);

結果を返します; >NET.JSON の基盤上で JavascriptSeriazible を使用して转换:




复制代


代以下:
public string Serialize(object value)
{
JavaScriptSerializer ser = 新しい JavaScriptSerializer();

リストコンバータ = new List();

if (value != null)
{
Type type = value.GetType();
if (type == typeof(DataTable) || type == typeof(DataRow) || type == typeof(DataSet))
{
converters.Add(new WebExtensionsDataRowConverter());
converters.Add(new WebExtensionsDataTableConverter());
converters.Add(new WebExtensionsDataSetConverter());
}

if (converters.Count > 0)
ser.RegisterConverters(converters);
}

return = ser.Serialize(value);
}
public object Deserialize(string jsonText, Type valueType)
{
// *** '動的' 非定数型インスタンスでリフレクションを使用する必要があります
JavaScriptSerializer ser = new JavaScriptSerializer ();


object result = ser.GetType()
.GetMethod("Deserialize")
.MakeGenericMethod(valueType)
.Invoke(ser, new object[1] { jsonText });
結果を返します。
}
}



内部クラス WebExtensionsDataTableConverter : JavaScriptConverter
{
public override IEnumerable SupportedTypes
{
get { return new Type[] {typeof (DataTable)}; }
}

パブリック オーバーライド オブジェクト Deserialize(IDictionary ディクショナリ, Type タイプ,
JavaScriptSerializer シリアライザー)
{
throw new NotImplementedException();
}


次のセクションでは、ASP.NET の環境で JSON や DataTable などの変換をどのように使用するか、JQuery の AJAX を使用した Web サービスの生成による JSON の生成に相当するものを示します。 ^_^
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

VMware Horizo​​n Client を開けない [修正] VMware Horizo​​n Client を開けない [修正] Feb 19, 2024 pm 11:21 PM

VMware Horizo​​n Client を使用すると、仮想デスクトップに簡単にアクセスできます。ただし、場合によっては、仮想デスクトップ インフラストラクチャで起動の問題が発生することがあります。この記事では、VMware Horizo​​n クライアントが正常に起動できない場合に実行できる解決策について説明します。 VMware Horizo​​n クライアントが開かないのはなぜですか? VDI を構成するときに、VMWareHorizo​​n クライアントが開いていないと、エラーが発生する可能性があります。 IT 管理者が正しい URL と資格情報を提供していることを確認してください。すべて問題がない場合は、このガイドに記載されている解決策に従って問題を解決してください。 Windows コンピュータで VMW が開かない場合に VMWareHorizo​​n Client が開かない問題を修正する

VMware Horizo​​n クライアントが接続中にフリーズまたは停止する [修正] VMware Horizo​​n クライアントが接続中にフリーズまたは停止する [修正] Mar 03, 2024 am 09:37 AM

VMWareHorizo​​n クライアントを使用して VDI に接続すると、認証中にアプリケーションがフリーズしたり、接続がブロックされたりする状況が発生することがあります。この記事では、この問題を調査し、この状況を解決する方法を示します。 VMWareHorizo​​n クライアントでフリーズまたは接続の問題が発生した場合、問題を解決するために実行できることがいくつかあります。 VMWareHorizo​​n クライアントが接続中にフリーズするかスタックする問題を修正する Windows 11/10 で VMWareHorizo​​n クライアントがフリーズするか接続に失敗する場合は、以下の解決策に従ってください。 ネットワーク接続を確認する Horizo​​n クライアントを再起動する Horizo​​n サーバのステータスを確認する クライアント キャッシュをクリアする 修正方法

win11で画像形式を変更する方法 win11で画像形式を変更する方法 Jul 01, 2023 pm 04:05 PM

win11で画像形式を変更するにはどうすればよいですか?画像ファイルにはさまざまな形式があり、それぞれの形式には画質やファイルサイズに違いがあり、また、画像処理に画像ソフトウェアを使用すると、互換性により画像形式を受け取ることになることは誰もが知っています。画像形式を変換するには、win11システムでこの操作を実行するにはどうすればよいですか?詳細な操作方法を知らない友人も多いと思いますが、Win11 で C ドライブをフォーマットする手順をエディターが以下にまとめましたので、興味がある方はエディターに従って以下をお読みください。 win11 画像形式を変更する手順 1. まず、形式を変更する必要がある画像を win11 デスクトップ上で見つけます。 2. 写真の名前の最後に、次のことができます。

Vue とサーバー側通信の分析: タイムアウト要求を処理する方法 Vue とサーバー側通信の分析: タイムアウト要求を処理する方法 Aug 10, 2023 pm 01:51 PM

Vue とサーバー間の通信の調査: タイムアウト要求を処理する方法 はじめに: Vue の開発プロセス中、バックエンド サーバーとの通信は非常に一般的な状況です。ただし、ネットワークの遅延やその他の理由により、リクエストがタイムアウトになる場合があります。この記事では、Vue でタイムアウト リクエストを処理する方法について説明し、対応するコード例を示します。 1. リクエストに Axios を使用する Vue では、通常、ネットワーク リクエストを行うための HTTP クライアント ライブラリとして Axios を使用します。 Axios はリクエストを送信するための一連のメソッドを提供しており、

PHP MQTT クライアント開発ガイド PHP MQTT クライアント開発ガイド Mar 27, 2024 am 09:21 AM

MQTT (MessageQueuingTelemetryTransport) は、IoT デバイス間の通信に一般的に使用される軽量のメッセージ送信プロトコルです。 PHP は、MQTT クライアントの開発に使用できる、一般的に使用されるサーバー側プログラミング言語です。この記事では、PHP を使用して MQTT クライアントを開発する方法を紹介します。以下の内容が含まれます。 MQTT プロトコルの基本概念 PHPMQTT クライアント ライブラリの選択と使用例: PHPMQTT クライアントを使用した公開と使用

PHP を使用して画像の解像度を調整し、形式を変換する方法 PHP を使用して画像の解像度を調整し、形式を変換する方法 Aug 18, 2023 pm 09:45 PM

PHP を使用して画像解像度の調整と形式変換を実装する方法 はじめに: Web サイト開発では、画像解像度を調整し、画像形式を変換する必要がよく発生します。この記事では、PHPを使用してこれらの機能を実装する方法を紹介します。画像解像度の調整 画像解像度を調整すると、ページの読み込み速度を最適化し、帯域幅の消費を削減できます。以下は、PHPGD ライブラリを使用して画像解像度を調整するためのサンプル コードです。 <?phpfunctionresizeImage($sourc)

Baidu Netdisk Web ページでクライアントを起動できない問題を解決するにはどうすればよいですか? Baidu Netdisk Web ページでクライアントを起動できない問題を解決するにはどうすればよいですか? Mar 13, 2024 pm 05:00 PM

多くの友人がファイルをダウンロードする場合、最初に Web ページを閲覧し、次にクライアントに転送してダウンロードします。ただし、Baidu Netdisk Web ページでクライアントを起動できないという問題が発生することがあります。この問題に対応して、編集者は百度ネットディスク Web ページでクライアントを起動できない問題を解決するための解決策を用意しましたので、困っている友人は参照してください。解決策: 1. Baidu Netdisk が最新バージョンではない可能性があります。Baidu Netdisk クライアントを手動で開き、右上隅の設定ボタンをクリックし、バージョン アップグレードをクリックします。アップデートがない場合は以下の画面が表示されますが、アップデートがある場合は画面に従ってアップデートしてください。 2. Baidu Cloud Disk の検出サービス プログラムが無効になっている可能性があります当社が手動またはセキュリティ ソフトウェアを使用して、Baidu Cloud Disk の検出サービス プログラムを自動的に無効にする可能性があります。チェックアウトしてください

モバイルクライアントとは何ですか モバイルクライアントとは何ですか Aug 16, 2023 pm 01:40 PM

モバイルクライアントとは、スマートフォン上で動作し、ネイティブクライアントやWebクライアントの形でユーザーにさまざまな機能やサービスを提供するアプリケーションを指します。モバイル クライアントは、オリジナル クライアントと Web クライアントの 2 つの形式に分けることができます。ネイティブ クライアントは、特定のプログラミング言語と開発ツールを使用して、特定のオペレーティング システム用に作成されたアプリケーションを指します。Web クライアントの利点は、優れたクロスプラットフォーム互換性があることです。 、オペレーティング システムの制限なしでさまざまなデバイス上で実行できますが、ネイティブ クライアントと比較して、Web クライアントのパフォーマンスとユーザー エクスペリエンスが低下する可能性があります。

See all articles