【问题标题】:Parse JSON in java does not work在 java 中解析 JSON 不起作用
【发布时间】:2016-08-13 17:10:34
【问题描述】:

我将此 JSON {"id":"279537","valuation":857} 保存在名为 resultString 变量中。

String result = "{\"id\":\"279537\",\"valuation\":857}";

此 JSON 是服务器响应的结果。我想解析 JSON 并将 idvaluation 属性保存到变量中,然后在屏幕上打印值。

代码如下:

JSONObject obj = new JSONObject(result);
int id = obj.getInt("id");
int valuation = obj.getInt("valuation");
System.out.println(id);
System.out.println(valuation);

很遗憾,屏幕上没有打印任何内容。

【问题讨论】:

  • 我无法重现这个问题,这表明问题的一部分是您没有向我们展示的。发布 shortfull 代码,让我们重现它(换句话说,创建并发布 SSCCE / minimal reproducible example)。
  • 这仍然不足以简单地复制粘贴您的代码并重现此问题。我们甚至不知道JSONObject 来自哪个库/包。请花点时间创建简短但完整的示例。
  • 可能。不幸的是,我不是 JEE 专家,所以我帮不了你太多。但我仍然建议使用您正在使用的工具(如jsf)为您的问题添加适当的标签,以便观察这些标签的专家了解您的问题,并将您的代码限制在必要的部分(您的 bean 真的需要每个属性吗?在这里?)
  • 是的。所有属性都在 xhtml 文件中使用。在另一部分与我面临的问题无关。
  • 这就是我的意思,如果它们对这个问题不重要,那么你在这个问题中不需要它们。我强烈建议您从头开始创建简短的示例,让我们重现您的问题。在创建这样的示例时,您甚至很有可能会找到问题的原因。

标签: java json


【解决方案1】:

这不起作用:

id = obj.getInt("id");

你的 id 是一个字符串注意在 qoutes 之间...

改为:

JSONObject obj = new JSONObject(result);
String id = obj.getString("id");
int valuation = obj.getInt("valuation");
System.out.println(id);
System.out.println(valuation);

【讨论】:

  • 在这种情况下,OP 会遇到一些异常,这不是这里的问题。
  • 你怎么确定 OP 没有出现异常...代码不完整...
  • “...但是 什么都没有 打印在屏幕上”(强调我的)
  • 我没有得到任何异常。我已经尝试将 id 声明为 String,但它不起作用。我希望 id 和估值是全球性的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
相关资源
最近更新 更多