解析 JSON 时出错:JSONObject 文本必须在 0 [字符 1 第 1 行] 处以“{”开头

问题描述 投票:0回答:1

我收到此错误,我的 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 条件来检查“{”,但仍然收到错误

json string exception
1个回答
0
投票

我相信你想使用 byte[] 而不是 byte。

byte[] bytes = Files.readAllBytes(Paths.get(CURRENT_MARKET_PLACE_FILE_PATH));
© www.soinside.com 2019 - 2024. All rights reserved.