类似Jackson中JsonNode类,既可以表示ObjectNode,也可以表示ArrayNode, 这样在写通用的http调用接口时,返回值就可以用JsonNode,因为http的返回值并不事先确定是ObjectNode或者是ArrayNode.fastjosn中有JSONObject表示Jackson中的ObjectNode,有ArrayObject表示Jackson中的ArrayNode,但没有表示通用的JsonNode。
x4shl7ld1#
JSONObject/JSONArray
iqjalb3h2#
@wenshao JSONObject 相当于jackson中的ObjectNode, JSONArray相当于jackson中的ArrayNode, 但jackson中还有JsonNode可以同时表示两者,相同于一个父类,fastxml中有这个父类可以同时表示JSONObject/JSONArray吗
ee7vknir3#
为什么会有这个需求呢? 比如http请求的返回值,在不知道具体会返回ObjectNode还是ArrayNode的情况下,可以用jsonNode作为返回值。但在fastxml中不知道用什么
irlmq6kh4#
我比较喜欢简单粗暴的返回Object。 但是如果你一定的要找个父类来返回, 你返回JSON也是可以的。JSONObject/JSONArray都是继承抽象类 JSON的
44u64gxh5#
实际上不太可能会有这种需求, 这样对客户端不友好
knpiaxh16#
我用的一个三方库,http返回jsonnode我觉得还是非常合理,调用接口的人才知道返回的是 列表还是字典
enxuqcxy7#
你们库中的JSONObject的get接口返回的是JSONObject与JSONArray, 如果用JSON取代,JSON类里面本身又不具有获取值的方法,尴尬
ecr0jaav8#
个人感觉fastjson在使用姿势上比jackson简单了很多, 如果能支持这个属性,就完美了.......
fhity93d9#
@neil4dong 简单粗暴地返回Object,会让使用麻烦很多
ncecgwcz10#
你是指的客户端反序列化吧, 而不是服务端序列化
pieyvz9o11#
@neil4dong 如果是之前的返回JsonNode的情况下,应该是不需要反序列化的吧, 我的理解很多情况下,不需要特别的创建一个类去反序列化
unhi4e5o12#
像gson那种每次反序列化时都需要创建一个类,是一种很麻烦的事情
quhf5bfb13#
我的意思是有一个JsonNode能像字典一样使用json,大多数时候也就不需要去执行特殊的反序列化。
13条答案
按热度按时间x4shl7ld1#
JSONObject/JSONArray
iqjalb3h2#
@wenshao JSONObject 相当于jackson中的ObjectNode, JSONArray相当于jackson中的ArrayNode, 但jackson中还有JsonNode可以同时表示两者,相同于一个父类,fastxml中有这个父类可以同时表示JSONObject/JSONArray吗
ee7vknir3#
为什么会有这个需求呢? 比如http请求的返回值,在不知道具体会返回ObjectNode还是ArrayNode的情况下,可以用jsonNode作为返回值。但在fastxml中不知道用什么
irlmq6kh4#
我比较喜欢简单粗暴的返回Object。 但是如果你一定的要找个父类来返回, 你返回JSON也是可以的。JSONObject/JSONArray都是继承抽象类 JSON的
44u64gxh5#
实际上不太可能会有这种需求, 这样对客户端不友好
knpiaxh16#
我用的一个三方库,http返回jsonnode我觉得还是非常合理,调用接口的人才知道返回的是 列表还是字典
enxuqcxy7#
你们库中的JSONObject的get接口返回的是JSONObject与JSONArray, 如果用JSON取代,JSON类里面本身又不具有获取值的方法,尴尬
ecr0jaav8#
个人感觉fastjson在使用姿势上比jackson简单了很多, 如果能支持这个属性,就完美了.......
fhity93d9#
@neil4dong 简单粗暴地返回Object,会让使用麻烦很多
ncecgwcz10#
你是指的客户端反序列化吧, 而不是服务端序列化
pieyvz9o11#
@neil4dong 如果是之前的返回JsonNode的情况下,应该是不需要反序列化的吧, 我的理解很多情况下,不需要特别的创建一个类去反序列化
unhi4e5o12#
像gson那种每次反序列化时都需要创建一个类,是一种很麻烦的事情
quhf5bfb13#
我的意思是有一个JsonNode能像字典一样使用json,大多数时候也就不需要去执行特殊的反序列化。