Json字符串:
[{"userId":"","dbUser":"18","name":"18","deptCode":"","identity":"1","createDate":"","telephone":"","memo":""},
{"userId":"","dbUser":"19","name":"19","deptCode":"","identity":"1","createDate":"","telephone":"","memo":""}]
json反序列化为实体代码:
json = json.substring(1, json.length()-1);
JSONObject jsonObject = JSONObject.fromObject(json);
user = (User)JSONObject.toBean(jsonObject, User.class);
问题一:需要用json.substring(1, json.length()-1) 去掉json字符串头尾的符号 [ ,否则
JSONObject jsonObject = JSONObject.fromObject(json); 会报错:需要以 { 开头,这是正常的么?
问题二:用上面的方法反序列化生成的User实体只有dbUser=18这个成员,而第2个dbUser=19这个成员被截掉了,请问该如何处理能够得到包含多个成员的User实体集合?
谢谢!
------解决思路----------------------
这本来就是一个数组型的标准的json串,用阿里的fastjson
代码如下,tostring方法只写了两个
import java.util.List;
import com.alibaba.fastjson.JSON;
public class JSONUtil {
public static void main(String[] args) {
String json = "[{\"userId\":\"\",\"dbUser\":\"18\",\"name\":\"18\",\"deptCode\":\"\",\"identity\":\"1\",\"createDate\":\"\",\"telephone\":\"\",\"memo\":\"\"},"
+ " {\"userId\":\"\",\"dbUser\":\"19\",\"name\":\"19\",\"deptCode\":\"\",\"identity\":\"1\",\"createDate\":\"\",\"telephone\":\"\",\"memo\":\"\"}]";
List<User> list = JSON.parseArray(json, User.class);
System.out.println(list);
}
}
class User {
private String userId;
private String dbUser;
private String name;
private String deptCode;
private String identity;
private String createDate;
private String telephone;
private String memo;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getDbUser() {
return dbUser;
}
public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getIdentity() {
return identity;
}
public void setIdentity(String identity) {
this.identity = identity;
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String toString() {
return new StringBuffer()
.append("userId:").append(userId)
.append(";")
.append("dbUser:").append(dbUser)
.toString();
}
}