作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先..如果缺少某些信息,请询问,我会提供所需的信息。
我的桌面上有一个 .json 文件,现在我必须使用 java 并且必须从 .json 文件中提取值。这是我的任务:**编写一个提取值的脚本“自动 -> 内核 -> 发布”从附加的 json 文件中取出。
示例:输出:
3.16.0-5-amd64**
json 文件有 27k+ 行,我不知道这是否可能有问题。
.json 文件包含以下内容:
1 {
2 “results”: 3,
3 “rows”: [
4 {
5 “name”: “test”,
6 “chef_environment”: “office”,
7 “json_class”: “Chef::Node”,
8 “automatic”: {
9 “nginx”: {
10 “version”: null,
11 “configure_arguments”: [
12
13 ],
14 “prefix”: null,
15 “conf_path”: null
16 },
.....
98 “kernel”: {
99 “name”: “Linux”,
100 “release”: “3.16.0-5-amd64"
这是我现在的代码:
package json;
import java.io.*;
import java.io.File;
import java.io.FileReader;
import org.json.simple.parser.ParseException;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.JSONArray;
import java.util.Iterator;
public class json {
public static void main(String[] args) throws Exception {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("C:\\Users\\admin-elias\\Desktop\\nginx.json"));
JSONObject jsonObject = (JSONObject) obj;
String automatic = (String) jsonObject.get("automatic");
String kernel = (String) jsonObject.get("kernel");
JSONArray release = (JSONArray) jsonObject.get("release");
System.out.println("automatic: "+automatic);
System.out.println("kernel: "+kernel);
System.out.println("release: "+release);
;
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我尝试运行该程序时,出现以下错误:
java.lang.NumberFormatException: For input string: "18446744073709551615"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Long.parseLong(Long.java:692)
at java.base/java.lang.Long.valueOf(Long.java:1144)
at org.json.simple.parser.Yylex.yylex(Yylex.java:660)
at org.json.simple.parser.JSONParser.nextToken(JSONParser.java:269)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:118)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:92)
at json.json.main(json.java:18)
我做错了什么?我对java比较陌生,我需要让这个程序运行,所以每一个建议或帮助都会非常好。 :)
编辑:
我终于得到了完美运行的代码:
public class json {
public static void main(String[] args) throws Exception {
try {
JsonReader jsonReader = new JsonReader(new FileReader("filename"));
Gson gson = new Gson();
JsonElement json = gson.fromJson(jsonReader, JsonElement.class);
//JsonElement json = new JsonParser().parse(jsonString);
JsonArray array = json.getAsJsonObject().get("rows").getAsJsonArray();
int length = array.size();
for (int i = 0; i < length; i++) {
System.out.println(array.get(i).getAsJsonObject().get("automatic").getAsJsonObject().get("kernel").getAsJsonObject().get("release").getAsString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
最佳答案
关于java.lang.NumberFormatException : For input string: "18446744073709551615",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55241287/
我是一名优秀的程序员,十分优秀!