検索
ホームページJava&#&チュートリアルJavaでのオブジェクトとJSON間の変換

JavaでのオブジェクトとJSON間の変換

Jul 18, 2017 pm 03:18 PM
javajavascriptjson

プロジェクトのニーズに応じてオブジェクト データが JSON データに変換される場合があります。以下はプロジェクトのニーズに基づく個人的な実装方法です。

json 文字列を Java オブジェクトに変換する

以下に示すように、同様に、まず json 文字列を json オブジェクトに変換し、次に json オブジェクトを Java オブジェクトに変換します。

JSONObject obj = new JSONObject().fromObject(jsonStr);//json文字列をjsonオブジェクトに変換

jsonオブジェクトをjavaオブジェクトに変換

person jb = (person)JSONObject.toBean (obj, Person.class);//json オブジェクトを person オブジェクトに変換します

java オブジェクトを json 文字列に変換します

まず、java オブジェクトを json オブジェクトに変換し、次に json オブジェクトを json に変換しますstring

JSONObject json = JSONObject.fromObject(obj);//Java オブジェクトを json オブジェクトに変換します

String str = json.toString();//json オブジェクトを string に変換します

プロジェクトで必要です データをフォーマットします:

[{"node": "0",   "index": null,"status": null,"preNode": null,"postNode": [{"node": "xxx_4"},
    {"node": "xxx_3"},
    {"node": "xxx_2"},
    {"node": "xxx_14"}]
},
{"node": "xxx_2","index": "index_1","status": "表达式1","preNode": [{"node": "xxx_0"}],"postNode": [{"node": "xxx_5"}]
},
{"node": "xxx_14","index": "index_4","status": "表达式5","preNode": [{"node": "xxx_0"}],"postNode": [{"node": "xxx_13"},
    {"node": "xxx_5"}]
},
{"node": "xxx_3","index": "index_2","status": "表达式2","preNode": [{"node": "xxx_0"}],"postNode": [{"node": "xxx_5"}]
},
{"node": "xxx_4","index": "index_3","status": "表达式3","preNode": [{"node": "xxx_0"}],"postNode": [{"node": "xxx_12"}]
},
{"node": "xxx_5","index": "index_4","status": "表达式4","preNode": [{"node": "xxx_3"},
    {"node": "xxx_2"},
    {"node": "xxx_14"}],"postNode": [{"node": "xxx_6"}]
},
{"node": "xxx_6","index": "index_5","status": "表达式6","preNode": [{"node": "xxx_5"}],"postNode": [{"node": "xxx_7"}]
},
{"node": "xxx_7","index": "index_6","status": "表达式7","preNode": [{"node": "xxx_6"}],"postNode": [{"node": "xxx_8"}]
},
{"node": "xxx_8","index": "index_4","status": "表达式8","preNode": [{"node": "xxx_7"}],"postNode": [{"node": "xxx_9"},
    {"node": "xxx_10"}]
},
{"node": "xxx_9","index": "index_5","status": "表达式5","preNode": [{"node": "xxx_8"}],"postNode": [{"node": "xxx_11"}]
},
{"node": "xxx_10","index": "index_7","status": "表达式6","preNode": [{"node": "xxx_8"}],"postNode": [{"node": "xxx_11"}]
},
{"node": "xxx_11","index": "index_8","status": "表达式7","preNode": [{"node": "xxx_9"},
    {"node": "xxx_10"}],"postNode": [{"node": "xxx_12"}]
},
{"node": "xxx_12","index": "index_8","status": "表达式7","preNode": [{"node": "xxx_11"},
    {"node": "xxx_4"}],"postNode": [{"node": "xxx_13"}]
},
{"node": "xxx_13","index": "","status": "","preNode": [{"node": "xxx_14"},
    {"node": "xxx_12"}],"postNode": []
},
{"node": "9999","index": null,"status": null,"preNode": [{"node": "xxx_14"},
    {"node": "xxx_12"}],"postNode": null}]

プロジェクト内のリストオブジェクトの内容

 1 JsonModel{node='xxx_2', preNode='', index='index_1', status='表达式1'} 2 JsonModel{node='xxx_14', preNode='', index='index_4', status='表达式5'} 3 JsonModel{node='xxx_3', preNode='', index='index_2', status='表达式2'} 4 JsonModel{node='xxx_4', preNode='', index='index_3', status='表达式3'} 5 JsonModel{node='xxx_5', preNode='xxx_2', index='index_4', status='表达式4'} 6 JsonModel{node='xxx_5', preNode='xxx_3', index='index_4', status='表达式5'} 7 JsonModel{node='xxx_5', preNode='xxx_14', index='index_4', status='表达式5'} 8 JsonModel{node='xxx_6', preNode='xxx_5', index='index_5', status='表达式6'} 9 JsonModel{node='xxx_7', preNode='xxx_6', index='index_6', status='表达式7'}10 JsonModel{node='xxx_8', preNode='xxx_7', index='index_4', status='表达式8'}11 JsonModel{node='xxx_9', preNode='xxx_8', index='index_5', status='表达式5'}12 JsonModel{node='xxx_10', preNode='xxx_8', index='index_7', status='表达式6'}13 JsonModel{node='xxx_11', preNode='xxx_10', index='index_8', status='表达式7'}14 JsonModel{node='xxx_11', preNode='xxx_9', index='index_8', status='表达式8'}15 JsonModel{node='xxx_12', preNode='xxx_11', index='index_8', status='表达式7'}16 JsonModel{node='xxx_12', preNode='xxx_4', index='index_8', status='表达式8'}17 JsonModel{node='xxx_13', preNode='xxx_14', index='', status='表达式13'}18 JsonModel{node='xxx_13', preNode='xxx_12', index='', status='表达式14'}

  testJson() <jsonmodel> list= ArrayList== JsonModel("xxx_2","","index_1","表达式1"= JsonModel("xxx_14","","index_4","表达式5"= JsonModel("xxx_3","","index_2","表达式2"= JsonModel("xxx_4","","index_3","表达式3"= JsonModel("xxx_5","xxx_2","index_4","表达式4"= JsonModel("xxx_5","xxx_3","index_4","表达式5"= JsonModel("xxx_5","xxx_14","index_4","表达式5"= JsonModel("xxx_6","xxx_5","index_5","表达式6"= JsonModel("xxx_7","xxx_6","index_6","表达式7"= JsonModel("xxx_8","xxx_7","index_4","表达式8"= JsonModel("xxx_9","xxx_8","index_5","表达式5"= JsonModel("xxx_10","xxx_8","index_7","表达式6"= JsonModel("xxx_11","xxx_10","index_8","表达式7"= JsonModel("xxx_11","xxx_9","index_8","表达式8"= JsonModel("xxx_12","xxx_11","index_8","表达式7"= JsonModel("xxx_12","xxx_4","index_8","表达式8"= JsonModel("xxx_13","xxx_14","","表达式13"= JsonModel("xxx_13","xxx_12","","表达式14"->String str=JsonNode rootNode =<childnode> preNode_set=<childnode> postNode_set=<node> nodeList= ArrayListNode node="0"<childnode> childNodeList= HashSet( i=0;i<rootnode.size>= HashSetJsonNode nameNode = (rootNode.get(i)).get("node"==rootNode.get(i).get("index"=rootNode.get(i).get("status"( j=i+1;j<rootnode.size>++++ ChildNode("0"++=Node pre_node="9999"<childnode> childNodes= HashSet( i=0;i<rootnode.size> nodeList= ArrayList==<jsonmodel> jsonModels= ArrayList( i=1;i<jsonnode.size></jsonnode.size></jsonmodel></rootnode.size></childnode></rootnode.size></rootnode.size></childnode></node></childnode></childnode></jsonmodel>

使用されるオブジェクトエンティティクラスは次のとおりです

 1 package com.yf.af.biz.test; 2  3 /** 4  * Created by chen on 2017/7/14. 5  */ 6 public class JsonModel { 7     private String node; 8     private String preNode; 9     private String index;10     private String status;11 12     public String getNode() {13         return node;14     }15 16     public void setNode(String node) {17         this.node = node;18     }19 20     public String getPreNode() {21         return preNode;22     }23 24     public void setPreNode(String preNode) {25         this.preNode = preNode;26     }27 28     public String getIndex() {29         return index;30     }31 32     public void setIndex(String index) {33         this.index = index;34     }35 36     public String getStatus() {37         return status;38     }39 40     public void setStatus(String status) {41         this.status = status;42     }43 44     public JsonModel(String node, String preNode, String index, String status) {45         this.node = node;46         this.preNode = preNode;47         this.index = index;48         this.status = status;49     }50 51     public JsonModel() {52     }53 54     @Override55     public String toString() {56         return "JsonModel{" +57                 "node='" + node + '\'' +58                 ", preNode='" + preNode + '\'' +59                 ", index='" + index + '\'' +60                 ", status='" + status + '\'' +61                 '}';62     }63 }
コードを見る
 1 package com.yf.af.biz.test; 2  3 import java.util.List; 4 import java.util.Set; 5  6 /** 7  * Created by chen on 2017/7/15. 8  */ 9 public class Node {10     private String node;11     private String index;12     private String status;13 14     private Set<childnode> preNode;15 16     private Set<childnode> postNode;17 18     public String getNode() {19         return node;20     }21 22     public void setNode(String node) {23         this.node = node;24     }25 26     public String getIndex() {27         return index;28     }29 30     public void setIndex(String index) {31         this.index = index;32     }33 34     public String getStatus() {35         return status;36     }37 38     public void setStatus(String status) {39         this.status = status;40     }41 42     public Set<childnode> getPreNode() {43         return preNode;44     }45 46     public void setPreNode(Set<childnode> preNode) {47         this.preNode = preNode;48     }49 50     public Set<childnode> getPostNode() {51         return postNode;52     }53 54     public void setPostNode(Set<childnode> postNode) {55         this.postNode = postNode;56     }57 58     @Override59     public String toString() {60         return "Node{" +61                 "node='" + node + '\'' +62                 ", index='" + index + '\'' +63                 ", status='" + status + '\'' +64                 ", preNode=" + preNode +65                 ", postNode=" + postNode +66                 '}';67     }68 69 70     public Node() {71     }72 }</childnode></childnode></childnode></childnode></childnode></childnode>
コードを表示
 1 package com.yf.af.biz.test; 2  3 /** 4  * Created by chen on 2017/7/15. 5  */ 6 public class ChildNode { 7     private String node; 8  9     public String getNode() {10         return node;11     }12 13     public void setNode(String node) {14         this.node = node;15     }16 17     public ChildNode(String node) {18         this.node = node;19     }20 21     public ChildNode() {22     }23 }
コードを表示

以上がJavaでのオブジェクトとJSON間の変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

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

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター