Object与json数据相互转换
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
{
private int length;
private String value;
public void setLength(int length)\{
this.length = length;
\}
public int getLength()\{
return this.length;
\}
public void setValue(String value)\{
this.value = value;
\}
public String getValue()\{
return this.value;
\}
}
//==================================
//package ;
public class Data
{
private String serviceId;
private ServiceData serviceData;
public void setServiceId(String serviceId)\{
this.serviceId = serviceId;
\}
public String getServiceId()\{
return this.serviceId;
\}
public void setServiceData(ServiceData serviceData)\{
this.serviceData = serviceData;
\}
public ServiceData getServiceData()\{
return this.serviceData;
\}
}
//==================================
//package ;
import java.util.ArrayList;
import java.util.List;
public class DataRoot
{
private String msgType;
private String hasMore;
private List<Data> data;
public void setMsgType(String msgType)\{
this.msgType = msgType;
\}
public String getMsgType()\{
return this.msgType;
\}
public void setHasMore(String hasMore)\{
this.hasMore = hasMore;
\}
public String getHasMore()\{
return this.hasMore;
\}
public void setData(List<Data> data)\{
this.data = data;
\}
public List<Data> getData()\{
return this.data;
\}
}
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 {
mapper.configure(SerializationFeature.***FAIL\_ON\_EMPTY\_BEANS***, **false**);
// 忽略不需要的字段
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
DataRoot dataroot = mapper.readValue(jsonstr, DataRoot.**class**);
String msgtype = dataroot.getMsgType();
System.***out***.println("msgtype="+msgtype);
List<Data> datas = dataroot.getData();
**if**(datas.size()>0)
\{
Data data = datas.get(0);
ServiceData serdata=data.getServiceData();
String value=serdata.getValue();
System.***out***.println("value="+value);
\}
\}
**catch** (Exception e)
\{
e.printStackTrace();
\}
}
//打印输出字符串:
/*
msgtype=1
value=123456789012
*/
还没有评论,来说两句吧...