【问题标题】:Converting Strings to booleans when converting XML to JSON将 XML 转换为 JSON 时将字符串转换为布尔值
【发布时间】:2010-07-28 16:44:27
【问题描述】:

这段代码本质上是接受一个 JAXB 对象并将其转换为 JSONObject

  StringWriter stringWriter = new StringWriter();
  marshaller.marshal(jaxbObj, stringWriter);
  try {
    JSONObject jsonObject = XML.toJSONObject(stringWriter.toString());
    resp.getOutputStream().write(jsonObject.toString(2).getBytes());

  } catch (JSONException e) {
    throw new ServletException("Could not parse JSON",e);
  }

不幸的是,这种转换并没有将诸如“true”之类的字符串转换为布尔值,而是让可怜的前端人员去做。

我想我想以某种方式映射 JSONObject 中的值,在每个值上调用 stringToValue。我感觉有更好的方法。有什么想法吗?

【问题讨论】:

  • 一个体面的 JSON 实现会将字符串转换为字符串,而不是尝试进行任何心灵感应数据类型猜测。但是出于同样的原因,它应该将有效的布尔值转换为有效的布尔值......愿意向我们展示一些示例数据吗?

标签: java xml json


【解决方案1】:

嗯,JAXB 本身甚至不会生成 JSON,因此您正在使用其他东西(也许通过 Jersey 使用它)。所以也许有问题的包裹有什么东西。

但是为什么要尝试使用 org.json 对象呢?只需使用具有预期类型的​​常规 Java bean,从您拥有的任何输入 bean 创建它。不需要魔法,只需明确的代码。

【讨论】:

  • 由于 JSON 相当简单,我最终确实为相关项目使用了显式代码。感谢您的反馈。
猜你喜欢
  • 2018-09-07
  • 1970-01-01
  • 2012-03-10
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多