{"code":200,"status":"OK","data":{"timings":{"Fajr":"04:17","Sunrise":"05:30","Dhuhr":"12:20","Asr":"15:42","Sunset":"19:11","Maghrib":"19:11","Isha":"20:24","Imsak":"04:07","Midnight":"00:20"},"date":{"readable":"17 Jun 2017","timestamp":"1497652236"}}}
class SaveTheFeed extends AsyncTask<Void, Void, Void>{
String jsonString = "";
String result = "";
EditText chosenCity = (EditText) findViewById(R.id.editText3);
String city = chosenCity.getText().toString();
@Override
protected Void doInBackground(Void... voids) {
DefaultHttpClient httpClient = new DefaultHttpClient(new BasicHttpParams());
HttpPost httpPost = new HttpPost("http://api.aladhan.com/timingsByCity?city=" + city + "&country=AE&method=2");
httpPost.setHeader("Content-type", "application/json");
InputStream inputStream;
try{
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) !=null){
builder.append(line + "\n");
}
jsonString = builder.toString();
JSONObject jObject = new JSONObject(jsonString);
JSONObject data = (JSONObject) jObject.get("data");
JSONArray jArray = (JSONArray) data.get("timings");
outputTimings(jArray);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOExcepthtml" target="_blank">ion e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
TextView prayerTimes = (TextView) findViewById(R.id.prayerTimes);
prayerTimes.setText(result);
}
protected void outputTimings(JSONArray jsonArray){
String[] prayers= {"Fajr", "Sunrise", "Dhuhr", "Asr", "Sunset", "Maghrib", "Isha", "Imsak", "Midnight"};
try{
for(int i = 0; i < jsonArray.length(); i++){
JSONObject cityObject =
jsonArray.getJSONObject(i);
result = result + prayers[i] + " : "+
cityObject.getString(prayers[i]) + "\n";
}
06-17 00:24:15.973 286 6-2907/azanmute.android.com.azanmute W/system.err:org.json.jsonException:java.lang.String类型的值不能转换为JSONObject 06-17 00:24:15.973 286 6-2907/azanmute.android.com.azanmute W/system.err:at org.json.jsemismatch(json.java:111)06-17 00:24:15.973 286 6-2907/azanmute.android.com.typemismatch:15.974 286 6-2907/azanmute.android.com.azanmute W/system.err:at org.json.JSONObject.(JSONObject.java:173)06-17 00:24:15.974 286 6-2907/azanmute.android.com.azanmute W/system.err:at azanmute.android.com.azanmute w/system.err:at azanmute.android.com.azanmute.MainActivity$savethefeed.doinbackground(mainActivity.java:60)06-17 00:24:15.974 286 6-2907/azanmute.android.com.azanmute W/system.err:at android.os.asynctask$2.call(asynctask.java:305)06-17 00:24:15.974 286-29072907/azanmute.android.com.azanmute W/system.err:at java.util.concurrent.futuretask.run(futuretask.java:237)06-17 00:24:15.974 286-2907/azanmute.android.com.azanmute W/system.err:at android.os.asynctask$serialexecutor$1.run(asynctask.java:243)06-17 00:24:15.974 286-2907/azanmute.android.com.azanmute executor.java:1133)06-17 00:24:15.974 286 6-2907/azanmute.android.com.azanmute W/system.err:at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:607)06-17 00:24:15.974 286 6-2907/azanmute.android.com.azanmute W/system.err:at java.lang.thread.run(thread.java:761)
因此,我的理解是,我错误地指向了数据,或者将JSONObjects与JSONArrays混淆了。我已经尝试了这两个,但仍然收到相同的错误。
在本例中,您没有混淆JSON对象和JSON数组。这肯定是一个JSONObject。
您可能在字符串中添加了JSONObject构造函数不喜欢的“不可见”字符(即“\n”)。试试这个:
JSONObject jObject = new JSONObject(jsonString.substring(jsonString.indexOf("{"), jsonString.lastIndexOf("}") + 1));
另外,请注意“timings”也是一个JSONObject,而不是JSONArray。JSONArray的示例,其中“CARS”是JSONArray:
{"name":"John","age":30,"cars":[ "Ford", "BMW", "Fiat" ]}
https://en.wikipedia.org/w/api.php?action=query 摘录是一个空字符串
问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,
问题内容: 我正在wxPython中编写一个小应用程序,它具有一个matplotlib图形(使用wxagg后端)面板。我想为用户添加将图中当前绘制的X,Y数据导出到文本文件的功能。有无创方法可以做到这一点吗?我已经搜索了很多,似乎什么也找不到,尽管我觉得它非常简单而且就在我的面前。 我绝对可以获取数据,并在绘制数据时将其存储在某个位置,并使用它-但这会侵入我的代码的较低级别。如果我可以做些简单的事
我有一个用Java编写的管理应用程序,可以管理我的用户 我创建了一个自定义json 这就是我的JSON看起来的样子 在我的列表中,我只显示电子邮件地址 现在我的问题,例如,如果我单击包含电子邮件的列表,我想在对话框中显示与此电子邮件相关的数据,即、和 怎样我可以检索其他值吗使用电子邮件? 我在网上找不到任何关于它的信息
我是JSON的新手。我想使用JSON检索两个地方之间的距离。我想从位于“legs”数组中的“Distance”对象获取“text”(距离b/w两个地方),而“legs”数组又位于“routes”数组中。链接(http://maps.googleapis.com/maps/api/directions/json?origin=adoor&destination=thiruvananthapuram%
问题内容: 我在从Java servlet内的JavaScript检索以JSON形式发送的数据时遇到查询。以下是我在做什么… 这是JavaScript内向Servlet发出请求的代码的一部分 在发出此请求时,我尝试检索从Servlet中的JavaScript发送的参数,但这样做时,我首先对如何从请求中检索数据感到困惑 我在servlet中使用了以下内容: 注意: 我的Servlet中的内容类型设置