java json转对象_java-将json转换为对象列表

您可以将结果转换为对象列表,也可以传入类型参数而不是List类.

String jsonString = "[{\"id\": \"0\", \"ip\": \"123\", \"mac\": \"456\"}, {\"id\": \"1\", \"ip\": \"111\", \"mac\": \"222\"}]";

有对象

List items = objectMapper.readValue(

jsonString,

objectMapper.getTypeFactory().constructParametricType(List.class, Object.class)

);

与SlaveEntity

List items = objectMapper.readValue(

jsonString,

objectMapper.getTypeFactory().constructCollectionType(List.class, SlaveEntity.class)

);

更新资料

这是我想出的,并且有效.

实体测试

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;

public class EntityTest {

public static void main(String[] args) {

String json = "[{\"id\": \"0\", \"ip\": \"123\", \"mac\": \"456\"}, {\"id\": \"1\", \"ip\": \"111\", \"mac\": \"222\"}]";

for (SlaveEntity entity : jsonToSlaveEntity(json)) {

System.out.println(entity);

}

}

public static List jsonToSlaveEntity(String json) {

ObjectMapper objectMapper = new ObjectMapper();

try {

return objectMapper.readValue(

json,

objectMapper.getTypeFactory().constructCollectionType(List.class, SlaveEntity.class)

);

} catch (IOException e) {

e.printStackTrace();

}

return new ArrayList();

}

}

基础实体

public class BaseEntity {

private long id;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

}

从属实体

import java.util.List;

import javax.persistence.CascadeType;

import javax.persistence.FetchType;

import javax.persistence.OneToMany;

import com.fasterxml.jackson.annotation.JsonProperty;

public class SlaveEntity extends BaseEntity {

private String ip;

@JsonProperty("mac")

private String macAddress;

private String status;

@OneToMany(mappedBy = "slave", targetEntity = PositionEntity.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)

private List positions;

public String getIp() {

return ip;

}

public void setIp(String ip) {

this.ip = ip;

}

public String getMacAddress() {

return macAddress;

}

public void setMacAddress(String macAddress) {

this.macAddress = macAddress;

}

public String getStatus() {

return status;

}

public void setStatus(String status) {

this.status = status;

}

public List getPositions() {

return positions;

}

public void setPositions(List positions) {

this.positions = positions;

}

@Override

public String toString() {

return String.format(

"SlaveEntity [id=%d, ip=%s, mac=%s, status=%s, positions=%s]",

getId(), ip, macAddress, status, positions);

}

}

PositionEntity

public class PositionEntity {

// ?

}

结果

SlaveEntity [id=0, ip=123, mac=456, status=null, positions=null]

SlaveEntity [id=1, ip=111, mac=222, status=null, positions=null]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值