[英]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.