我收到此错误,我的 json 文件从该代码部分收到错误 “JSONObject 数据 = 新 JSONObject(内容);”
Error:Error parsing JSON: A JSONObject text must begin with '{' at 0 [character 1 line 1] org.json.JSONException: Unterminated string at 8192 [character 17 line 479] at org.json.JSONTokener.syntaxError(JSONTokener.java:503) at org.json.JSONTokener.nextString(JSONTokener.java:302) at org.json.JSONTokener.nextSimpleValue(JSONTokener.java:430) at org.json.JSONObject.<init>(JSONObject.java:218) at org.json.JSONTokener.nextValue(JSONTokener.java:409) at org.json.JSONArray.<init>(JSONArray.java:105) at org.json.JSONTokener.nextValue(JSONTokener.java:416) at org.json.JSONObject.<init>(JSONObject.java:237) at org.json.JSONTokener.nextValue(JSONTokener.java:409) at org.json.JSONArray.<init>(JSONArray.java:105) at org.json.JSONTokener.nextValue(JSONTokener.java:416) at org.json.JSONObject.<init>(JSONObject.java:237)
public static String getCurrentMarketplaceName() {try {byte bytes = Files.readAllBytes(Paths.get(CURRENT_MARKET_PLACE_FILE_PATH));String content = new String(bytes, StandardCharsets.UTF_8).trim();
// Validate the JSON starts with '{'
if (content.startsWith("{")) {
JSONObject data = new JSONObject(content);
JSONArray marketplaces = data.getJSONArray("marketplaces");
if (!marketplaces.isEmpty()) {
JSONObject marketplace = marketplaces.getJSONObject(0);
return marketplace.getString("name");
} else {
System.out.println("No marketplace found.");
}
} else {
System.out.println("The file content does not start with '{'. Please check the file format.");
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
Json 文件:
{"marketplaces": [{ "drones": [ { "recentMission": 13, "relationships": [ { "trustValue": 0, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "ByzantineDrone-3" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 40, "name": "Drone-1", "globalReputationScore": 1 }, { "recentMission": 16, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 0, "droneName": "ByzantineDrone-3" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 40, "name": "Drone-2", "globalReputationScore": 1 }, { "recentMission": 16, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 0, "droneName": "ByzantineDrone-3" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 40, "name": "Drone-3", "globalReputationScore": 1 }, { "recentMission": 19, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "ByzantineDrone-3" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 40, "name": "Drone-4", "globalReputationScore": 1 }, { "recentMission": 19, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-3" }, { "trustValue": 1, "droneName": "Drone-5" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 40, "name": "Drone-5", "globalReputationScore": 1 }, { "recentMission": 19, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "ByzantineDrone-3" } ], "droneType": "Thermal Imaging Drones", "numberOfMissions": 101, "name": "Drone-6", "globalReputationScore": 1 }, { "recentMission": 19, "relationships": [ { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 0, "droneName": "ByzantineDrone-3" } ], "droneType": "Thermal Imaging Drones", "numberOfMissions": 101, "name": "ByzantineDrone-1", "errorRate": 0.6, "globalReputationScore": 0.32981849403079 }, { "recentMission": 19, "relationships": [ { "trustValue": 1, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 0, "droneName": "ByzantineDrone-3" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" } ], "droneType": "Cargo Drones", "numberOfMissions": 51, "name": "Drone-7", "globalReputationScore": 1 }, { "recentMission": 16, "relationships": [ { "trustValue": 0, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "ByzantineDrone-3" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "Drone-8" } ], "droneType": "Cargo Drones", "numberOfMissions": 50, "name": "Drone-8", "globalReputationScore": 1 }, { "recentMission": 7, "relationships": [ { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 0, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-8" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 1, "name": "ByzantineDrone-2", "errorRate": 0.8332559989065593, "globalReputationScore": 0 }, { "recentMission": 10, "relationships": [ { "trustValue": 1, "droneName": "Drone-1" }, { "trustValue": 1, "droneName": "Drone-2" }, { "trustValue": 1, "droneName": "Drone-3" }, { "trustValue": 1, "droneName": "Drone-4" }, { "trustValue": 1, "droneName": "Drone-5" }, { "trustValue": 1, "droneName": "Drone-6" }, { "trustValue": 0, "droneName": "ByzantineDrone-1" }, { "trustValue": 1, "droneName": "Drone-7" }, { "trustValue": 1, "droneName": "Drone-8" }, { "trustValue": 0, "droneName": "ByzantineDrone-2" }, { "trustValue": 1, "droneName": "ByzantineDrone-3" } ], "droneType": "Multi-Sensor Reconnaissance Drones", "numberOfMissions": 1, "name": "ByzantineDrone-3", "errorRate": 0.43766446635329015, "globalReputationScore": 0 } ], "byzantineDronePercentage": 27.27272727272727, "name": "Marketplace 1" }]}
我添加了 if 条件来检查“{”,但仍然收到错误
我相信你想使用 byte[] 而不是 byte。
byte[] bytes = Files.readAllBytes(Paths.get(CURRENT_MARKET_PLACE_FILE_PATH));