JSON:java.lang.Double null被转换为零;我应该如何处理客户?

JSON:java.lang.Double null被转换为零;我应该如何处理客户?,java,javascript,ajax,json,Java,Javascript,Ajax,Json,我有一个客户端可以发出AJAX请求。Java应用程序服务器创建具有Java.lang.Double实例字段的对象列表。根据请求的不同,所有对象上的某些实例字段可能为空。但是当对象列表被转换(通过JSONArray.fromObject)时,空值被转换为零 因此,在客户端,这些对用户显示为零值。我应该如何处理这个问题,以便用户看不到这些值?我认为最好首先停止服务器发送零(可能是不发送字段),但我不确定如何使用JSON干净地做到这一点。不太好的是,我可以在客户机上找到某种方法来知道处理程序中请求了什

我有一个客户端可以发出AJAX请求。Java应用程序服务器创建具有Java.lang.Double实例字段的对象列表。根据请求的不同,所有对象上的某些实例字段可能为空。但是当对象列表被转换(通过JSONArray.fromObject)时,空值被转换为零

因此,在客户端,这些对用户显示为零值。我应该如何处理这个问题,以便用户看不到这些值?我认为最好首先停止服务器发送零(可能是不发送字段),但我不确定如何使用JSON干净地做到这一点。不太好的是,我可以在客户机上找到某种方法来知道处理程序中请求了什么,并防止显示数据,除非客户机请求。在这种情况下,有没有办法从XMLHttpRequest对象获取HTTP请求参数数据


非常感谢您的帮助。

使用不同的JSON解析器(Crockford是一种可能性)。如果0的东西看起来像一个bug,那么它将为空。

我将尝试一下。我目前正在使用net.sf.json-lib(组id)、json-lib(工件id)和版本2.3。我在哪里可以得到Crockford的解析器?谢谢(您还可以在官方的json.org上找到它的链接,因为它是这里列出的仅有的两个JS解析器之一)对不起,我可能遗漏了一些东西。Crockford的代码似乎不是Java到JSON库。我在JavaScript端解析JSON没有问题。问题是如何将Java对象转换为JSON。我完全误解了。同样的想法也适用(如果你去json.org,你会看到他们有多个Java=>json库)。但是,我在您的库中阅读了javadoc(特别是JSONArray),它没有描述您看到的行为。因此,您可能希望向他们提交一个bug,或者使用另一个fromObject签名(它允许您传入一个配置参数;我没有详细查看该配置,但从快速查看的结果来看,它似乎可以解决此问题)。顺便说一句,我刚刚检查了,我们实际上在应用程序中使用了相同的库,只有我们使用的旧版本没有fromObject方法。相反,我们只使用JSONObject构造函数,它将单个对象作为参数。不确定您的版本是否具有该构造函数,或者该构造函数与fromObject之间的区别是什么。。。但可能值得尝试一下构造函数,看看它是否有用。您使用什么库在服务器上生成JSON?听起来这是一个拆箱问题,其中Double被转换为Double,null被转换为0。