[英]parse JSON local file in java with Gson library
我有这个 JSON 文件:
{
"mapping": {
"trips": [
{
"starttime": "15:10:50.000",
"endtime": "15:17:30.000",
"name": "island1",
"program": [
{
"starttime": "15:14:27.000",
"endtime": "15:14:54.000",
"name": "Breakfast"
},
{
"starttime": "15:16:35.000",
"endtime": "15:16:56.000",
"name": "Swimming"
},
{
"starttime": "15:15:41.000",
"endtime": "15:16:07.000",
"name": "Lunch"
},
{
"starttime": "15:10:50.000",
"endtime": "15:11:19.000",
"name": "Swimming"
},
{
"starttime": "15:17:01.000",
"endtime": "15:17:30.000",
"name": "Dinner"
}
]
},
{
"starttime": "15:18:43.000",
"endtime": "15:27:34.000",
"name": "island2",
"program": [
{
"starttime": "15:20:53.000",
"endtime": "15:21:15.000",
"name": "Yoga"
},
{
"starttime": "15:20:17.000",
"endtime": "15:20:43.000",
"name": "Breakfast"
},
{
"starttime": "15:20:28.000",
"endtime": "15:20:55.000",
"name": "Swimming"
},
{
"starttime": "15:23:23.000",
"endtime": "15:23:46.000",
"name": "Swimming"
},
{
"starttime": "15:20:24.000",
"endtime": "15:20:45.000",
"name": "Dinner"
},
{
"starttime": "15:26:17.000",
"endtime": "15:26:38.000",
"name": "Clubbing"
},
{
"starttime": "15:20:04.000",
"endtime": "15:20:28.000",
"name": "Sleeping"
}
]
}
]
}
}
如何使用 Gson 在 Java 中解析它? 我尝试了类似的方法,但收到了 com.example.Model@43556938 null
public static void main(String[] args) {
Gson gson = new Gson();
try (Reader reader = new FileReader("myjsonfile.json")) {
Mapping mapping = gson.fromJson(reader, Mapping.class);
Trip trip = gson.fromJson(reader, Trip.class);
System.out.println(mapping);
System.out.println(trip);
} catch (IOException e) {
e.printStackTrace();
}
}
我想阅读所有信息(JSON 对象和数组)。 我可以逐行执行或有任何建议吗?
您正在获取映射 object 并打印相同的 object
像这样做:
private static final Type REVIEW_TYPE = new TypeToken<List<Mapping>>() {
}.getType();
Gson gson = new Gson();
JsonReader reader = new JsonReader(new FileReader(YOUR_JSON_FILE));
List<Mapping> data = gson.fromJson(reader, REVIEW_TYPE); // contains the whole mapping list
data.toScreen(); // print some value of data through iteration
当您从 Gson 读取时,将其分配给 Hashmap,然后从 map 读取。 希望这会对您有所帮助以下是执行此操作的代码:
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import com.google.gson.Gson;
public class JsontoObj {
public static void main(String[] args) {
Gson gson = new Gson();
try (Reader reader = new FileReader("/Documents/sample.json")) {
HashMap<String, Mapping> mappings= gson.fromJson(reader, HashMap.class);
//System.out.println(mappings);
}catch (IOException e) {
e.printStackTrace();
}
}
}
class Mapping{
List<Trip> trips;
public List<Trip> getTrips() {
return trips;
}
public void setTrips(List<Trip> trips) {
this.trips = trips;
}
}
class Trip{
private String startTime;
private String endTime;
private String name;
private Program program[] = new Program[5];
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Program[] getProgram() {
return program;
}
public void setProgram(Program[] program) {
this.program = program;
}
}
class Program{
private String startTime;
private String endTime;
private String name;
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.