欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

cxf json 雙引號(hào)

如果你使用Apache CXF開(kāi)發(fā)web服務(wù)并使用JSON傳輸數(shù)據(jù),就會(huì)經(jīng)常遇到JSON中雙引號(hào)的問(wèn)題。

public interface UserService {
User getUser(String id);
}
public class UserServiceImpl implements UserService {
public User getUser(String id) {
User user = new User(id, "John", "Doe");
return user;
}
}
User user = clientProxy.getUser("1");
System.out.println(user.toString());

在這個(gè)例子中,服務(wù)端返回一個(gè)User對(duì)象,但是由于CXF默認(rèn)使用Jackson庫(kù)序列化JSON,所以返回的JSON字符串中,User對(duì)象的屬性名和屬性值之間是使用雙引號(hào)包裹的。

{"firstName":"John","id":"1","lastName":"Doe"}

但是在前端JavaScript中,這種JSON格式會(huì)導(dǎo)致錯(cuò)誤。因?yàn)镴avaScript的解析器只能識(shí)別單引號(hào)包裹的字符串。此時(shí)可以使用CXF提供的JSONProvider類來(lái)解決這個(gè)問(wèn)題。

在JSONProvider中,通過(guò)設(shè)置arrayKeys屬性,來(lái)指定需要使用單引號(hào)包裹的屬性名。在上面的例子中,我們?cè)O(shè)置了firstName和lastName兩個(gè)屬性名需要使用單引號(hào),其他屬性名使用雙引號(hào)。

{'firstName':'John',"id":"1",'lastName':'Doe'}

這樣前端JavaScript就可以正確地解析JSON字符串了。