无法解析JSON?

时间:2017-11-06 15:35:57

标签: java android json

我有问题要解析{ success: true, outputScenario: "Default", data: { output: [ { titolo: "Esterna di Mattia e Vittoria - 6 novembre", sottotitolo: "En plein air", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Giorgia - 6 novembre", sottotitolo: "Un primo incontro molto schietto", date: "06/11/2017" }, { titolo: ""Sono fatto così"", sottotitolo: "Mattia è molto infastidito da alcuni commenti nei suoi riguardi", date: "06/11/2017" }, { titolo: ""Occhi da gatta... morta!"", sottotitolo: "Tra Ester e Angela non corre buon sangue....", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Angela - 6 novembre", sottotitolo: "Caldarroste e chiarimenti", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Ester - 6 novembre", sottotitolo: "Metti una serata... "romantica"", date: "06/11/2017" }, { titolo: ""Sei la persona a cui penso di più"", sottotitolo: "Nella prossima puntata del Trono Classico...", date: "05/11/2017" }, { titolo: "Esterna inedita di Paolo e Silvia - 3 novembre", sottotitolo: "Un'esterna vintage!", date: "03/11/2017" }, { titolo: "Esterna inedita di Mattia e Angela - 3 novembre", sottotitolo: "L'esterna mancata", date: "03/11/2017" }, { titolo: "Esterna inedita di Paolo e Laura - 3 novembre", sottotitolo: "A lezione di tedesco!", date: "03/11/2017" }, { titolo: "Esterna inedita di Sabrina e Federico - 3 novembre", sottotitolo: "Sfida a tutta velocità", date: "03/11/2017" }, { titolo: "Venerdì 3 novembre", sottotitolo: "Sabrina e Alex tra critiche e arrabbiature...", date: "03/11/2017" } ] }, stateToken: "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=", cookies: [ ] }

这是我的json:

Json parsing error: Value

我的应用中出现以下错误: HttpHandler sh = new HttpHandler(); // Making a request to url and getting response String jsonStr = sh.makeServiceCall(url); Log.e(TAG, "Response from url: " + jsonStr); if (jsonStr != null) { try { JSONObject jsonObj = null; try { jsonObj = new JSONObject(jsonStr); } catch (JSONException e) { e.printStackTrace(); } // Getting JSON Array node JSONArray contacts = jsonObj.getJSONArray("output"); // looping through All Contacts for (int i = 0; i < contacts.length(); i++) { JSONObject c = contacts.getJSONObject(i); Video video=new Video(); String titolo = c.getString("titolo"); String sottotitolo = c.getString("sottotitolo"); String data = c.getString("date"); video.setTitolo(titolo); video.setSottotitolo(sottotitolo); video.setData(data); // tmp hash map for single contact /* HashMap<String, String> contact = new HashMap<>(); // adding each child node to HashMap key => value contact.put("id", id); contact.put("name", name); contact.put("email", email);*/ // adding contact to contact list videoList.add(video); } } catch (final JSONException e) { Log.e(TAG, "Json parsing error: " + e.getMessage()); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "Json parsing error: " + e.getMessage(), Toast.LENGTH_LONG) .show(); } }); } } else { Log.e(TAG, "Couldn't get json from server."); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "Couldn't get json from server. Check LogCat for possible errors!", Toast.LENGTH_LONG) .show(); } }); } return null;

我不知道为什么!

这是我解析json的代码:

select
  sum(type = 'Trial') as trial,
  sum(type = 'New') as new,
  sum(type = 'Service') as service,
  sum(type = 'Uninstall') as uninstall
from mytable;

谁能帮帮我?我无法找到错误!

2 个答案:

答案 0 :(得分:0)

为什么它不起作用

提供的JSON不是JSON,您可以检查here,但JSON中不允许使用未加引号的字符串。

如何修复

解决这个问题的第一步是引用关键字符串

有关JSON规则的更多信息

您可以找到定义JSON here

的完整规则集

答案 1 :(得分:0)

我同意jrtapsell,但是我注意到你还需要在你的字符串中正确地转义双引号,例如,在某些'titolo'字段中,如果你想保留“在字符串中你需要逃避它通过在它之前添加反斜杠(\),因为它是一个特殊字符。