我想使用JSON简单库用java读取这个<code>JSON<code>文件。
我的JSON
文件如下所示:
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
这是我为读取此文件而编写的java代码:
package javaapplication1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JavaApplication1 {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("c:\\file.json"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("name");
System.out.println(name);
String city = (String) jsonObject.get("city");
System.out.println(city);
String job = (String) jsonObject.get("job");
System.out.println(job);
// loop array
JSONArray cars = (JSONArray) jsonObject.get("cars");
Iterator<String> iterator = cars.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
但我得到了以下例外:
线程“main”中出现异常Java . lang . classcastexception:org . JSON . simple . JSON array无法转换为javaapplication1处的org.json.simple.JSONObject。Java application 1 . main(Java application 1 . Java:24)
有人能告诉我我做错了什么吗?整个文件是一个数组,在文件的整个数组中有对象和另一个数组(汽车)。但是我不知道如何将整个数组解析成一个java数组。我希望有人能帮我一个代码行,我在我的代码中丢失了。
谢谢
添加杰克逊数据绑定:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.pr2</version>
</dependency>
创建具有相关字段的 DTO 类并读取 JSON 文件:
ObjectMapper objectMapper = new ObjectMapper();
ExampleClass example = objectMapper.readValue(new File("example.json"), ExampleClass.class);
您可以使用 jackson 库,只需使用这 3 行即可将 json 文件转换为 Java 对象。
ObjectMapper mapper = new ObjectMapper();
InputStream is = Test.class.getResourceAsStream("/test.json");
testObj = mapper.readValue(is, Test.class);
整个文件是一个数组,在文件的整个数组中有对象和其他数组(例如汽车)。
正如您所说,JSON blob的最外层是一个数组。因此,解析器将返回一个< code>JSONArray。然后,您可以从数组中获取JSONObject...
JSONArray a = (JSONArray) parser.parse(new FileReader("c:\\exer4-courses.json"));
for (Object o : a)
{
JSONObject person = (JSONObject) o;
String name = (String) person.get("name");
System.out.println(name);
String city = (String) person.get("city");
System.out.println(city);
String job = (String) person.get("job");
System.out.println(job);
JSONArray cars = (JSONArray) person.get("cars");
for (Object c : cars)
{
System.out.println(c+"");
}
}
作为参考,请参阅json-Simple解码示例页面上的“示例1”。
问题内容: 我想使用JSON简单库使用Java 读取此文件。 我的文件如下所示: 这是我为读取此文件而编写的Java代码: 但是我得到以下异常: 线程“主”中的异常java.lang.ClassCastException:org.json.simple.JSONArray无法转换为上的。 有人可以告诉我我做错了吗?整个文件是一个数组,并且文件的整个数组中包含对象和另一个数组(汽车)。但是我不知道如
我想用GSON库用java读这个JSON文件。我刚开始使用gson Libray。有人请纠正我的代码我的JSON文件如下所示: 这是我为读取这个文件而编写的java代码: 但我得到以下异常:
我相信我需要创建一个JsonReader对象并调用其中一个Json静态方法,但我在读取文件时遇到了问题。json。 创建读取器方法似乎要求输入是一个字符串。我应该继续尝试将我的整个JSON文件解释为字符串吗?
我正在尝试将 json 文件读入 Spark 数据帧,但我将整个文件作为一行和一列获取,我试图将其拆分为多列: 这是我运行这行代码得到的输出: 这是已创建的数据帧的架构: 我的目标是将图像中的每个对象放在一行和分隔的列中,这意味着例如“Z4ah9SemQjX2cKN187pX”,其值为:艺术家,created_at…在第一行,“Z552dVXF5vp80bAajYrn”在第二行等。 我很陌生,可以
问题内容: 背景 我正在对Node.js进行一些试验,想从文本文件或.js文件(更好的??)中读取JSON对象到内存中,以便我可以从代码中快速访问该对象。我意识到那里有像Mongo,Alfred等的东西,但是那不是我现在所需要的。 题 如何使用JavaScript / Node从文本或js文件中读取JSON对象并将其读入服务器内存中? 问题答案: 同步: 异步:
问题内容: 我正在尝试从JSON文件读取值到数组以进行进一步处理。我正在使用JSON-Smart 1.2.0库。由于某些限制,我不能使用2.0版本。 我收到以下异常。 我什至尝试使用JSONArray而不是JSONObject。我在这儿做错了什么?这是读取JSON内容的正确方法吗? 以下是Java代码。 以下是json文件的内容。 问题答案: 您的JSON包含一个具有单个对象元素的数组,因此您应该