String JSON = "http://www.json-generator.com/j/cglqaRcMSW?indent=4";
JSONObject jsonObject = new JSONObject(JSON);
JSONObject getSth = jsonObject.getJSONObject("get");
Object level = getSth.get("2");
System.out.println(level);
J'ai proposé de nombreuses solutions pour analyser ce lien , obtenant toujours la même erreur en question ..___ Est-ce que n'importe qui peut me donner une solution simple pour l'analyse.
Votre problème est que String JSON = "http://www.json-generator.com/j/cglqaRcMSW?indent=4";
n'est pas JSON
.
Ce que vous voulez faire, c'est ouvrir une connexion HTTP
avec " http://www.json-generator.com/j/cglqaRcMSW?indent=4 " et analyser le JSON réponse.
String JSON = "http://www.json-generator.com/j/cglqaRcMSW?indent=4";
JSONObject jsonObject = new JSONObject(JSON); // <-- Problem here!
Ne pas ouvrir une connexion au site et récupérer le contenu.
J'ai eu le même problème. Ma réponse Json du serveur avait [ et,]:
[{"DATE_HIRED":852344800000,"FRNG_SUB_ACCT":0,"MOVING_EXP":0,"CURRENCY_CODE":"CAD ","PIN":" ","EST_REMUN":0,"HM_DIST_CO":1,"SICK_PAY":0,"STAND_AMT":0,"BSI_GROUP":" ","LAST_DED_SEQ":36}]
http://jsonlint.com/ dit json valide. vous pouvez le copier et le vérifier.
J'ai corrigé avec le code ci-dessous comme solution temporaire:
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
String result ="";
String output = null;
while ((result = br.readLine()) != null) {
output = result.replace("[", "").replace("]", "");
JSONObject jsonObject = new JSONObject(output);
JSONArray jsonArray = new JSONArray(output);
.....
}
J'ai eu la même chose, il y avait un caractère de nouvelle ligne vide au début .
int i = result.indexOf("{");
result = result.substring(i);
JSONObject json = new JSONObject(result.trim());
System.out.println(json.toString(4));
J'avais un problème similaire en raison d'une petite erreur, lorsque j'essayais de convertir une liste en json . Si une liste est convertie en json, elle retournera JSONArray et non JSONObject.
dans mon cas, mon arraylist me jette cette erreur avec JSONObject, mais je finis cette solution pour mon tableau d'objets String
List<String> listStrings= new ArrayList<String>();
String json = new Gson().toJson(listStrings);
return json;
Fonctionne comme un charme avec angular Gson version 2.8.5
J'ai eu le même problème en raison du mauvais ordre des instructions de code. Maintenez l'ordre ci-dessous pour résoudre le problème. Tous obtiennent les déclarations de méthodes en premier et les méthodes httpClient ultérieures.
HttpClient httpClient = new HttpClient();
get = new GetMethod(instanceUrl+usersEndPointUri);
get.setRequestHeader("Content-Type", "application/json");
get.setRequestHeader("Accept", "application/json");
httpClient.getParams().setParameter("http.protocol.single-cookie-header", true);
httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
httpClient.executeMethod(get);
Dans mon cas, l'encodage du fichier JSON était un problème
Je générais un fichier JSON au format vb .net avec les éléments suivants:
Et j'ai essayé toutes les suggestions dans ce post mais aucune n'a aidé.
Finalement dans Notepad ++ remarqua que le fichier créé était en UTF-8-BOM
Je ne sais pas comment il a relevé cet encodage, mais après l'avoir basculé sur UTF-8, le problème a été résolu sans autre changement.
J'espère que ça aide quelqu'un.
Votre JSON est parfaitement valide. Essayez d’utiliser ces classes JSON pour l’analyser. http://json.org/Java/