jsonデータのシリアル化と逆シリアル化
json の完全名は Javascript object notation で、中国語の完全名は js object notation です。シリアル化および逆シリアル化プロトコルには、json、xml、yaml、プロトコル バッファーなどがあります。このうち、フロントエンドおよびバックエンド API の契約データの主な送信形式は json です。 json は、数値、ブール値、配列、オブジェクトの 4 つのデータ型をサポートしています。これら 4 つのデータ型を使用して、複雑なデータ モデルを構築できます。 |
ここでは、json の使用法を説明するために 3 つの例を示します。初心者の場合、データの送受信に 1 つの構造体オブジェクトのみを使用することが多いかもしれません。以下に具体的な例を見てみましょう。 1. 構造体オブジェクトを使用してデータを受信します。 「」 type 人の構造体 { 名前文字列 `json:"name"` 年齢 int `json:"age"` } 関数 main() { データ := `{"名前": "アリス", "年齢": 25}` var p 人 err := json.Unmarshal([]byte(data), &p) エラーの場合 != nil { fmt.Println("json の解析に失敗しました:"、エラー) 戻る
###構造###
}<br>
<br><br>
func main() {
var (
新しい1人あたり
bts []バイト<br>
)<br>
per:=人{<br>
名前:「リリー」、<br>
年齢: 29,<br>
}<br>
// シリアル化<br>
bts の場合、err = json.Marshal(per); err !=nil{<br>
log.Fatal(err.Error())<br>
戻る###
}<br><br>
<br><br>
if err = json.Unmarshal(bts, &newPer); err !=nil{<br>
log.Fatal(err.Error())
戻る###
}
fmt.Println(newPer)
}<br><br>
###地図###
<br><br>関数メイン() {<br>
var (<br>
smap = マップ[文字列]int{
「年齢」: 28,
newSmap = make(map[string]int)
bts []バイト<br>
)<br>
bts の場合、err = json.Marshal(smap); err !=nil {<br>
log.Fatal(err.Error())<br>
戻る###
}<br>
if err = json.Umarshal(bts, &newSmap); err !=nil {<br>
log.Fatal(err.Error())<br>
戻る###
}<br>
fmt.Println(newSmap)<br>
}<br><br>
<br>配列またはスライス動的配列<br>
<br><br>関数メイン() {<br>
var (<br>
年齢 []int = []int{23, 20, 28, 25, 30}<br>
bts []バイト<br>
エラーエラー
newAges = make([]int, len(ages))
戻る###
}
if err = json.Unmarshal(bts, &newAges); err != nil {<br>
fmt.Println(err.Error())<br>
戻る###
}<br>
fmt.Println("新しい時代: ", newAges)<br>
戻る###
}<br><br>
初心者は、構造の json シリアル化と逆シリアル化については比較的明確ですが、後者の 2 つはめったに使用しない、またはまったく使用しない可能性があります。 <br>
<br>
<br>配列型データの場合、一部のビジネス シナリオのフロントエンドで使用されます。 <br>
<br>マップ タイプの場合、サードパーティ REST インターフェイスが Go 言語サーバーで呼び出されるとき、サーバーは呼び出しが成功したかどうかを判断するために指定された戻りコードのみを必要とします。プログラマは構造体全体の定義を書きたくなかったか、あるいは怠け者だったので、戻りデータを受け取るために map[string]interface{} を使用しました。このとき、json標準ライブラリのUnmarshalでデシリアライズした後、map["err_code"].(int)でリターンコードを取得し、その後のその他の処理ロジックを実行します。 <br>
<br>
<br> ここでは、構造体を使用するときに時々使用する機能についても説明する必要があります。構造体の JSON でサポートされているタグ値機能は、空を省略しています。例: <br>
<br>タイプ パーソン構造体 {<br>
名前文字列 `json:"name,omitempty"`
年齢 int `json:"age"`
}
- ここでは、Didi Company のシニア エンジニアである Taowen が作成した世界最速の JSON 解析ライブラリを提供します。 github アドレス: jsoniter。
OpenFermion ダウンロード アドレス: クリックしてダウンロード
<br>
この記事はオープンソースチャイナコミュニティ[http://www.oschina.net]からの転載です。
以上がjsonデータのシリアル化と逆シリアル化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

Google Chromeにファイルをアップロードするのに問題がありますか?これは迷惑かもしれませんよね?電子メールにドキュメントを添付したり、ソーシャルメディアで画像を共有したり、仕事や学校の重要なファイルを送信したりするかどうかにかかわらず、スムーズなファイルのアップロードプロセスが重要です。したがって、Windows PCのChromeでファイルのアップロードが引き続き失敗している場合、イライラする可能性があります。お気に入りのブラウザを放棄する準備ができていない場合は、Windows Google Chrome 1にファイルをアップロードできない修正のヒントをいくつか紹介します。高度なトラブルシューティングのヒントについて学ぶ前に、ユニバーサル修理から始めて、以下に説明する基本的なソリューションを試すのが最善です。インターネット接続の問題のトラブルシューティング:インターネット接続

Linuxユーザーグループを管理するには、表示、作成、削除、変更、およびユーザー属性の調整の操作をマスターする必要があります。ユーザーグループ情報を表示するには、cat/etc/groupまたはgetentgroupを使用して、グループ[username]またはid [username]を使用して、ユーザーが属するグループを表示できます。 GroupAddを使用してGroupを作成し、GroupDelを使用してGIDを指定します。 GroupDelを使用して、空のグループを削除します。 USERMOD-AGを使用してユーザーをグループに追加し、USERMOD-Gを使用してメイングループを変更します。 USERMOD-Gを使用して、 /etc /groupを編集するか、VIGRコマンドを使用してグループからユーザーを削除します。 GroupMod-N(名前を変更)またはGroupMod-G(GIDの変更)を使用してグループプロパティを変更し、関連するファイルの許可を更新することを忘れないでください。

Linux Systemsでは、1。IPAまたはHOSTNAME-Iコマンドを使用してプライベートIPを表示します。 2。CurlifConfig.meまたはcurlipinfo.io/ipを使用して、パブリックIPを取得します。 3.デスクトップバージョンは、システム設定を介してプライベートIPを表示でき、ブラウザは特定のWebサイトにアクセスしてパブリックIPを表示できます。 4.一般的なコマンドは、クイックコールのためにエイリアスとして設定できます。これらの方法はシンプルで実用的で、さまざまなシナリオでのIP表示のニーズに適しています。

linuxcanrunonModesthardwarewithspecificminimumrequirements.a1ghzprocessor(x86orx86_64)が必要であり、 amshouldbeatleast512mbforcommand-lineuseor2gbfordesktopenvironments.diskspacerequiresaminimumof5–10gb、25gbisbetterforad

デジタルの世界の先駆者として、ビットコインのユニークなコード名と基礎となるテクノロジーは、常に人々の注目の焦点でした。その標準コードはBTCであり、国際標準を満たす特定のプラットフォームでXBTとしても知られています。技術的な観点からは、ビットコインは単一のコードスタイルではなく、巨大で洗練されたオープンソースソフトウェアプロジェクトです。そのコアコードは主にCで記述されており、暗号化、分散システム、経済学の原則が組み込まれているため、誰でもコードを表示、レビュー、貢献できます。

PHPコンテナが自動構造をサポートできるようにするために、コアは連続統合(CI)プロセスの構成にあります。 1. DockerFileを使用して、基本的な画像、拡張インストール、依存関係管理、許可設定など、PHP環境を定義します。 2. GitlabciなどのCI/CDツールを構成し、.gitlab-ci.ymlファイルを介してビルド、テスト、展開段階を定義して、自動構造、テスト、展開を実現します。 3. phpunitなどのテストフレームワークを統合して、コードの変更後にテストが自動的に実行されることを確認します。 4. Kubernetesなどの自動展開戦略を使用して、deployment.yamlファイルを介して展開構成を定義します。 5. DockerFileを最適化し、マルチステージ構造を採用します

Linux/MacOSのシャットダウンコマンドは、パラメーターを介してシャットダウン、再起動、およびタイミング操作を行うことができます。 1.すぐにマシンをオフにし、sudoshutdownnowまたは-h/-pパラメーターを使用します。 2。シャットダウンに時間または特定の時点を使用して、-cの使用をキャンセルします。 3. -Rパラメーターを使用して再起動し、タイミングの再開をサポートします。 4. SUDO許可の必要性に注意し、リモート操作に注意し、データの損失を避けてください。

独立したPHPタスクコンテナ環境の構築は、Dockerを通じて実装できます。特定の手順は次のとおりです。1。基礎としてDockerとDockerMomposeをインストールします。 2。DockerFileおよびCrontabファイルを保存するための独立したディレクトリを作成します。 3. dockerfileを書き込み、phpcli環境を定義し、cronと必要な拡張機能をインストールします。 4.タイミングタスクを定義するためにCrontabファイルを書きます。 5。Docker-Compose.ymlマウントスクリプトディレクトリを作成し、環境変数を構成します。 6.コンテナを起動し、ログを確認します。 Webコンテナでタイミングタスクを実行するのと比較して、独立したコンテナには、リソースの分離、純粋な環境、強力な安定性、容易な拡張の利点があります。ロギングとエラーキャプチャを確保するため
