有时为了项目需求,会将对象数据转换成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字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串
项目中需要将数据格式:
[{"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}]
项目中list对象内容
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 }
Atas ialah kandungan terperinci java中对象与json之间的相互转换. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!