ホームページ > ウェブフロントエンド > jsチュートリアル > Json オブジェクトと Json 文字列のシリアル化と逆シリアル化を解析する例

Json オブジェクトと Json 文字列のシリアル化と逆シリアル化を解析する例

WBOY
リリース: 2022-08-08 15:40:34
転載
2219 人が閲覧しました

この記事では、javascript に関する関連知識を提供します。主に Json オブジェクトに関する関連問題を紹介します。JavaScript オブジェクト表記は、テキスト情報構文の保存と交換、およびデータ処理の実行に使用されます。送信には、JSON が使用されます。 XML よりも小さく、高速で、解析が簡単です。それでは、XML を見てみましょう。皆さんのお役に立てれば幸いです。

Json オブジェクトと Json 文字列のシリアル化と逆シリアル化を解析する例

[関連する推奨事項: JavaScript ビデオ チュートリアル Web フロントエンド ]

Json

JavaScript オブジェクト表記 -JavaScript
データ送信用のテキスト情報を保存および交換するための構文。JSON は XML よりも小さく、高速で、解析が簡単です。

var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},
          {"name": "李四", "age": 24, "gender": true},
          {"name": "王五", "age": 25, "gender": false}];
ログイン後にコピー

Json string

var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串
 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"}
  alert(typeof(b));//string
ログイン後にコピー

Serialization

データ構造またはオブジェクトをバイナリ文字列 (バイト列) に変換するプロセスが使用されます データ送信(データを json 文字列に変換し、バックエンドは @reponseBody と連携してデータを送受信します)

  • フロントエンドには json オブジェクトと json 文字列があります
  • バックエンドにはオブジェクトと json 文字列があります

バックエンドは Java オブジェクトです。データを JSON 形式で送信する場合は、シリアル化操作を実行する必要があります。
Java オブジェクトは、ネットワーク経由で送信したり、ハードディスクに保存したりする前にシリアル化する必要があります。
シリアル化後は json 文字列となり、jackson のシリアル化フレームワークを通じてシリアル化されます

バックエンドでは、コントローラーに @reponseBody アノテーションを追加して、サービス層から取得した Java オブジェクトをフロントエンドに送信されるjson形式のオブジェクト
フロントエンドから渡されるjson形式のデータを受け取るために、コントローラーのリクエストパラメータの前に@reponseBodyを追加します

#フロントエンドのシリアル化と逆シリアル化

    json オブジェクトを json 文字列にシリアル化します: JSON.stringify (json object) – フロントエンドがデータをシリアル化し、バックエンドに渡します
  • Deserialization: json 文字列をオブジェクトに逆シリアル化します。 : JSON.parse(str) – バックエンドから渡されたシリアル化されたデータ
バックエンドのシリアル化と逆シリアル化

    シリアル化は Java オブジェクト ->json 文字列です。
  • 逆シリアル化は json 文字列 -> Java オブジェクトです
バックエンドのシリアル化と逆シリアル化メソッド 1

この ObjectMapper オブジェクトは jackson パッケージです。以下に、これは彼の依存関係です

       <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>
ログイン後にコピー
//类属性,

private static final ObjectMapper MAPPER = new ObjectMapper();

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

MAPPER.writeValueAsString(userMapList);

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

MAPPER.readValue(你要反序列化的json字符串,new TypeReference<要反序列化为什么对象类型,例如 User.class>() {});
ログイン後にコピー

シリアル化: Js のオブジェクトを Json 形式に変換します。シリアル化の 2 つのパラメーター: フィルターとオプションです。

var person = {
username: ‘luohao’,
password: 123456,
location: ‘whu’
}
ログイン後にコピー

パラメータは配列です。配列内にある属性のみがシリアル化され、他の属性は無視されます。


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}
ログイン後にコピー

JSON.stringify() の 3 番目のパラメーターは、送信されるデータの読みやすさを向上させるために、インデントされたスペースの数を表します。


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”}}
ログイン後にコピー
rree

[関連する推奨事項:

JavaScript ビデオ チュートリアル Web フロントエンド ]

以上がJson オブジェクトと Json 文字列のシリアル化と逆シリアル化を解析する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
es6
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート