Object与json数据相互转换

╰+攻爆jí腚メ 2022-05-20 10:15 1016阅读 0赞

Object****json数据相互转换

wangxl@20180717

最近在测试nb终端与iot平台数据对接,经常用到object与json数据转换,参考华为提供的列程,整理以下两个函数,方便自己以后查阅也提供给大家学习参考;

  • Object转成json字符串

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.node.ArrayNode;

import com.fasterxml.jackson.databind.node.ObjectNode;

public void Object2JsonStr()

{

//组装body体

ObjectMapper mapper = new ObjectMapper();

ObjectNode root = mapper.createObjectNode();

root.put(“msgType”, “1”);

//组装消息体

root.put(“hasMore”, “0”);

ArrayNode arrynode = mapper.createArrayNode();

//组装数据

ObjectNode Node = mapper.createObjectNode();

Node.put(“serviceId”, “StreetLight”);

ObjectNode reqData = mapper.createObjectNode();

reqData.put(“length”, 12);

reqData.put(“value”, “123456789012”);

Node.put(“serviceData”, reqData);

arrynode.add(Node);

root.put(“data”, arrynode);

String str = root.toString();

System.out.println(str);

}

//打印输出字符串:

/*

{“msgType”:”1”,”hasMore”:”0”,”data”:[{“serviceId”:”StreetLight”,”serviceData”:{“length”:12,”value”:”123456789012”}}]}

*/

  • json字符串转找成Object

1、利用json在线生成实体类,json在线网址:https://www.sojson.com/json2entity.html

//package ;

public class ServiceData

{

  1. private int length;
  2. private String value;
  3. public void setLength(int length)\{
  4. this.length = length;
  5. \}
  6. public int getLength()\{
  7. return this.length;
  8. \}
  9. public void setValue(String value)\{
  10. this.value = value;
  11. \}
  12. public String getValue()\{
  13. return this.value;
  14. \}

}

//==================================

//package ;

public class Data

{

  1. private String serviceId;
  2. private ServiceData serviceData;
  3. public void setServiceId(String serviceId)\{
  4. this.serviceId = serviceId;
  5. \}
  6. public String getServiceId()\{
  7. return this.serviceId;
  8. \}
  9. public void setServiceData(ServiceData serviceData)\{
  10. this.serviceData = serviceData;
  11. \}
  12. public ServiceData getServiceData()\{
  13. return this.serviceData;
  14. \}

}

//==================================

//package ;

import java.util.ArrayList;

import java.util.List;

public class DataRoot

{

  1. private String msgType;
  2. private String hasMore;
  3. private List<Data> data;
  4. public void setMsgType(String msgType)\{
  5. this.msgType = msgType;
  6. \}
  7. public String getMsgType()\{
  8. return this.msgType;
  9. \}
  10. public void setHasMore(String hasMore)\{
  11. this.hasMore = hasMore;
  12. \}
  13. public String getHasMore()\{
  14. return this.hasMore;
  15. \}
  16. public void setData(List<Data> data)\{
  17. this.data = data;
  18. \}
  19. public List<Data> getData()\{
  20. return this.data;
  21. \}

}

2、json字符串转找成Object

public void JsonStr2Object()

{

String jsonstr=”{\“msgType\“:\“1\“,\“hasMore\“:\“0\“,\“data\“:[{\“serviceId\“:\“StreetLight\“,\“serviceData\“:{\“length\“:12,\“value\“:\“123456789012\“}}]}“;

ObjectMapper mapper = new ObjectMapper();

try {

  1. mapper.configure(SerializationFeature.***FAIL\_ON\_EMPTY\_BEANS***, **false**);

// 忽略不需要的字段

mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

  1. DataRoot dataroot = mapper.readValue(jsonstr, DataRoot.**class**);
  2. String msgtype = dataroot.getMsgType();
  3. System.***out***.println("msgtype="+msgtype);
  4. List<Data> datas = dataroot.getData();
  5. **if**(datas.size()>0)
  6. \{
  7. Data data = datas.get(0);
  8. ServiceData serdata=data.getServiceData();
  9. String value=serdata.getValue();
  10. System.***out***.println("value="+value);
  11. \}
  12. \}
  13. **catch** (Exception e)
  14. \{
  15. e.printStackTrace();
  16. \}

}

//打印输出字符串:

/*

msgtype=1

value=123456789012

*/

发表评论

表情:
评论列表 (有 0 条评论,1016人围观)

还没有评论,来说两句吧...

相关阅读