Maison  >  Article  >  Java  >  Conversion entre objets et json en java

Conversion entre objets et json en java

巴扎黑
巴扎黑original
2017-07-18 15:18:392693parcourir

Parfois, les données d'objet seront converties en données json pour les besoins du projet. Ce qui suit est une méthode de mise en œuvre personnelle basée sur les besoins du projet.

Convertir la chaîne json en objet java

Convertissez d'abord la chaîne json en objet json, puis convertissez l'objet json en objet java comme montré ci-dessous.

JSONObject obj = new JSONObject().fromObject(jsonStr);//Convertir la chaîne json en objet json

Convertir l'objet json en objet java

Person jb = (Person)JSONObject.toBean(obj,Person.class);//Convertir l'objet json en objet Person

Convertir l'objet Java en chaîne json

Convertissez d'abord l'objet Java en objet json, puis convertissez l'objet json en chaîne json

JSONObject json = JSONObject.fromObject(obj); //Convertir un objet Java en objet json

String str = json.toString();//Convertir un objet json en chaîne

Le format des données doit être dans le projet :

[{"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}]

Le contenu de l'objet de liste dans le projet

 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"=->

Voici les classes d'entités d'objet utilisées

 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 }
Afficher le code
 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 }
Afficher le code
 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 }
Voir le code

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn