为啥json在不同的应用环境中解析不同?

Posted

技术标签:

【中文标题】为啥json在不同的应用环境中解析不同?【英文标题】:Why json is parsed diffrently on diffrent application environments?为什么json在不同的应用环境中解析不同? 【发布时间】:2018-11-08 21:38:01 【问题描述】:

我在 java 中有 json 对象,我使用 obj.toString() 返回到浏览器。 response.setContentType("application/json") 正在将返回类型设置为 json。 示例:

obj = 
name: "pp",
age: 24

tomcat 上的应用程序:收到的响应是

obj = 
name: "pp",
age: 24

但在 glassfish 上的应用:收到的响应是

obj = 
name: "pp",
age: "24"

请注意,年龄被视为导致很多问题的字符串。 上面只是一个虚拟 json,我有一个巨大的 json,里面有很多键和值,大多数值是整数或浮点数。那么我怎样才能得到保留数据类型值的json。

【问题讨论】:

How Can i get json in which has data type of values are preserved - 不要使用 glassfish? 您使用哪个库进行 json 化? 【参考方案1】:

在应用程序中,因为它是非常旧的应用程序,最初我们使用 xml 响应。在升级系统时,我们选择了 json 响应。为了减少代码更改,我们只是使用 json.jar 中的函数将 xml 转换为 json。

JSONObject xmlJSONObj = XML.toJSONObject(returnStrXML);

将 xml 转换为 json 时出现问题。在我的环境中,我有不同的 jar,它巧妙地将 xml 转换为 json 以保留其数据类型。而 json.jar 默认将所有值转换为字符串。换罐子解决了这个问题。

【讨论】:

以上是关于为啥json在不同的应用环境中解析不同?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 上的调试解析 JSON 值的方式与模拟器不同

解析包含不同对象列表的 JSON 文件

如何解析不可预测的 JSON 对象?

为啥 std::istringstream 在三元 (?:) 运算符中的解析方式似乎与 std::ifstream 不同?

当实体在不同的项目中时,为啥 Mediator 不解析方法?

Json数据中同字段不同数据类型的解析