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

巴扎黑
リリース: 2017-07-18 15:18:39
オリジナル
2750 人が閲覧しました

プロジェクトのニーズに応じてオブジェクト データが 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= ArrayList<>Node node="0"<ChildNode> childNodeList= HashSet<>( i=0;i<rootNode.size();i++("".equals(rootNode.get(i).get("preNode" ChildNode(rootNode.get(i).get("node" ( i=0;i<= HashSet<>= HashSet<>JsonNode nameNode = (rootNode.get(i)).get("node"==rootNode.get(i).get("index"=rootNode.get(i).get("status"( j=i+1;j<rootNode.size();j++= (rootNode.get(j)).get("preNode"postNode_set.add( ChildNode((rootNode.get(j)).get("node"( j=0;j<list.size();j++= (rootNode.get(j)).get("node"(!"".equals(rootNode.get(j).get("preNode" ChildNode((rootNode.get(j)).get("preNode"(j>++++ ChildNode("0"++=Node pre_node="9999"<ChildNode> childNodes= HashSet<>( i=0;i<rootNode.size();i++("".equals(rootNode.get(i).get("index" ChildNode(rootNode.get(i).get("preNode"=  jsonTest(String s) <Node> nodeList= ArrayList<>==<JsonModel> jsonModels= ArrayList<>( i=1;i<jsonNode.size()-1;i++=jsonNode.get(i).get("index"=jsonNode.get(i).get("status"=jsonNode.get(i).get("node"( j=0;j<jsonNode.get(i).get("preNode").size();j++= jsonNode.get(i).get("preNode").get(j).get("node"=->
ログイン後にコピー

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

 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 }
ログイン後にコピー
コードを表示
 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 サイトの他の関連記事を参照してください。

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