java 对象转换 字段相同_使用Json将Java对象转换为json字符串时重复的json属性

我有Pojo对象,带有getAsJson函数以返回此对象的Json字符串。我使用JsonProperty在此对象中定义json属性。使用ObjectMapper的writeValueAsString可以为此对象编写json字符串。

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.annotate.JsonIgnore;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

import org.codehaus.jackson.annotate.JsonProperty;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

@JsonIgnoreProperties(ignoreUnknown=true)

public class LogLikeArticleDetail extends BaseObject {

private static final long serialVersionUID = -2018373118257019033L;

@JsonProperty("LikeArticleGUId")

private String likeArticleGUId;

@JsonProperty("UserId")

private String userID;

@JsonProperty("UserName")

private String userName;

@JsonProperty("IP")

private String ip;

@JsonProperty("OS")

private String os;

@JsonProperty("UserAgent")

private String userAgent;

@JsonProperty("WebsiteCode")

private String websiteCode;

@JsonProperty("ArticleId")

private String articleID;

@JsonProperty("ATitle")

private String aTitle;

@JsonProperty("CateAlias")

private String cateAlias;

@JsonProperty("LikeStatus")

private String likeStatus;

@JsonProperty("TimeStamp")

private Date timeStamp;

//get, set....

//....

@JsonIgnore

public String getAsJSON() throws JsonGenerationException, JsonMappingException, IOException{

ObjectMapper mapper = new ObjectMapper();

return mapper.writeValueAsString(this) ;

}

}

现在,我得到结果

public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {

Calendar calendar = Calendar.getInstance();

LogLikeArticleDetail logLikeArticle = new LogLikeArticleDetail("1","2","3","4","5","6","7","8","what thing \"nothing\" show","10","11",calendar.getTime());

System.out.println(logLikeArticle.getAsJSON());

}

但是结果是重复的属性:

{"LikeArticleGUId":"1","UserId":"2","UserName":"3","IP":"4","OS":"5","UserAgent":"6","WebsiteCode":"7","ArticleId":"8","ATitle":"what thing \"nothing\" show","CateAlias":"10","LikeStatus":"11","TimeStamp":1352256727062,"_likeArticleGUId":"1","websiteCode":"7","likeStatus":"11","userID":"2","userName":"3","ip":"4","os":"5","userAgent":"6","articleID":"8","aTitle":"what thing \"nothing\" show","cateAlias":"10","timeStamp":1352256727062}

告诉我这个问题发生了什么?

Java中可以使用第三方库如Jackson、Gson等来进行Json字符串的解析,这里以Jackson为例进行说明。 首先,需要将Json字符串转换Java对象。如果要转换的是一个单独的对象,可以使用如下代码: ```java ObjectMapper objectMapper = new ObjectMapper(); MyObject myObject = objectMapper.readValue(jsonString, MyObject.class); ``` 其中,`jsonString`是Json字符串,`MyObject`是Java对象的类型。`readValue`方法会将Json字符串转换Java对象。 如果要转换的是一个包含多个对象的List集合,可以使用如下代码: ```java ObjectMapper objectMapper = new ObjectMapper(); List<MyObject> myObjectList = objectMapper.readValue(jsonString, new TypeReference<List<MyObject>>(){}); ``` 其中,`jsonString`是Json字符串,`MyObject`是Java对象的类型。`TypeReference`用于解决Java泛型擦除的问题,这里使用了一个匿名内部类来定义一个List<MyObject>的类型。 如果要转换的是一个包含多个List集合的对象,可以使用如下代码: ```java ObjectMapper objectMapper = new ObjectMapper(); MyObjectWithList myObjectWithList = objectMapper.readValue(jsonString, MyObjectWithList.class); ``` 其中,`jsonString`是Json字符串,`MyObjectWithList`是Java对象的类型,它包含了一个或多个List集合的成员变量。 需要注意的是,Java对象的成员变量需要与Json字符串中的字段名称保持一致,或者使用注解来指定字段名称。例如: ```java public class MyObject { @JsonProperty("field_name") private String fieldName; // ... } ``` 这样,Jackson在解析Json字符串,会将`field_name`字段的值赋给`fieldName`成员变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值