gpt4 book ai didi

java - Gson解析根元素不常量的JSON文件

转载 作者:行者123 更新时间:2023-11-29 04:23:58 26 4
gpt4 key购买 nike

我正在尝试解析一个如下所示的 json 文件 -

 {
"gmps-camino": [
{
"id": "2903315183",
"category": "NEW",
"year": "2016",
"make": "Chevrolet",
"model": "4500 Gas",
"trim": "2WD Reg Cab 150"",
"type": "",
"price": "56001.000000",
"photo": "http://inventory-dmg.assets-cdk.com/chrome_jpgs/2016/24174x90.jpg"
},
{
"id": "2774517143",
"category": "NEW",
"year": "2016",
"make": "Chevrolet",
"model": "Cruze",
"trim": "Sedan L",
"type": "CAR",
"price": "17495.000000",
"photo": "http://inventory-dmg.assets-cdk.com/RTT/Chevrolet/2016/3077853/default/ext_GAZ_deg01x90.jpg"
}
]
}

我正在尝试使用 Gson 来解析它并创建一个类来模仿它 -

public class VehicleJson {
String builder
List<VehicleWithoutBuilder> vehiclesWithoutBuilder;
}

class vehicleWithoutBuilder {
String id;
String Category;
String year;
String make;
String model;
String trim;
String type;
Double price;
String photo;
}

我希望将根元素的值“gmps-camino”插入到构建器中,并将 JSON 的其余部分插入到 vehiclesWithoutBuilder 列表中。到目前为止,我尝试解析这个文件是徒劳的,因为 Gson 认为没有名为 gmps-camino 的类,并且为字符串和列表提供了 null。正确的做法是什么?

这是我试图解析的代码 -

BufferedReader br = new BufferedReader(new FileReader(jsonFileName));
Gson gson = new Gson();
VehicleJson vj = gson.fromJson(br, VehicleJson.class);

最佳答案

供您引用,如果需要,您可以在代码中使用 JSONParserJSONArray。尝试下面的一段代码并根据需要修改名称:

 JSONParser parser = new JSONParser();

try {

Object objct = parser.parse(new FileReader("...")); //the location/name of your json file
JSONObject jsonObject = (JSONObject) objct;
JSONArray objs = (JSONArray) jsonObject.get("gmps-camino");
for (Object obj : objs) {
JSONObject jobj = (JSONObject) obj;
String gmps = (String) jobj.get("gmps-camino");
System.out.println(gmps);
}
}

您需要相应地更改名称。

有关引用,请参阅 json-simple decoding example 上的“示例”页面。

或者,您可以检查以下 GSON 用法:

private static final Type VEHICLE = new TypeToken<List<vehicleWithoutBuilder>>() {
}.getType();

Gson gson = new Gson();
JsonReader reader = new JsonReader(new FileReader(filename));
List<vehicleWithoutBuilder> data = gson.fromJson(reader, VEHICLE ); // contains the whole list
data.toScreen(); // prints to screen some values

关于java - Gson解析根元素不常量的JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47405726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com