- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 android 中的 AsyncTask
从远程服务器获取 JSONarray
。
AsyncTask
正常工作,并且正在从远程获取 JSONarray
。
JSONarray
看起来像这样。
{
"code": 1,
"auth_key": null,
"gps_key": null,
"status": "Success",
"message": null,
"data": null,
"result": {
"sehedule": [
{
"schedule_id": 2,
"schedule_date": "2015-07-17 00:00:00",
"schedule_name": "Test Schedule"
},
{
"schedule_id": 5,
"schedule_date": "2015-07-18 00:00:00",
"schedule_name": "Another Test Schedule"
}
],
"visit": [
{
"visit_id": 4,
"schedule_id": 2,
"visit_name": "Keels Colombo Branch",
"visit_time": "2017-07-17 10:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 5,
"schedule_id": 2,
"visit_name": "Keels Gall Branch",
"visit_time": "2017-07-17 11:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 6,
"schedule_id": 2,
"visit_name": "Keels Kadawatha Branch",
"visit_time": "2017-07-17 13:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 7,
"schedule_id": 2,
"visit_name": "Keels Homagama Branch",
"visit_time": "2017-07-17 16:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 8,
"schedule_id": 5,
"visit_name": "Keels Nugegoda Branch",
"visit_time": "2017-07-18 10:15:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 9,
"schedule_id": 5,
"visit_name": "Keels Colombo Branch",
"visit_time": "2017-07-18 10:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
},
{
"visit_id": 10,
"schedule_id": 5,
"visit_name": "Keels Gall Branch",
"visit_time": "2017-07-18 10:34:00",
"visit_place": "Keels Colombo Branch",
"visit_address": "No 30\\Keels\\Colombo",
"visit_location_lat": "80.123456",
"visit_location_lng": "6.123456",
"visit_status": 0
}
],
"item": [
{
"item_id": 2,
"visit_id": 4,
"item_name": "Check Something"
},
{
"item_id": 3,
"visit_id": 4,
"item_name": "Check Anothrtthing"
},
{
"item_id": 4,
"visit_id": 5,
"item_name": "Check Something"
},
{
"item_id": 5,
"visit_id": 5,
"item_name": "Check Anothrtthing"
},
{
"item_id": 6,
"visit_id": 6,
"item_name": "Check Something"
},
{
"item_id": 7,
"visit_id": 6,
"item_name": "Check Anothrtthing"
},
{
"item_id": 8,
"visit_id": 7,
"item_name": "Check Something"
},
{
"item_id": 9,
"visit_id": 7,
"item_name": "Check Anothrtthing"
},
{
"item_id": 10,
"visit_id": 8,
"item_name": "Check Something"
},
{
"item_id": 11,
"visit_id": 8,
"item_name": "Check Anothrtthing"
},
{
"item_id": 12,
"visit_id": 9,
"item_name": "Check Something"
},
{
"item_id": 13,
"visit_id": 9,
"item_name": "Check Anothrtthing"
},
{
"item_id": 14,
"visit_id": 10,
"item_name": "Check Something"
},
{
"item_id": 15,
"visit_id": 10,
"item_name": "Check Anothrtthing"
}
]
},
"request_date_time": "2015-07-09 10:59:41"
}
我正在尝试从此数组中获取计划列表,并将其一一显示在 Toast
消息中。
我尝试过这样的。但它不显示任何东西。没有显示错误消息。
public class mainmenu extends Activity {
private String storedkey;
private String jsonfromapi;
private JSONArray Data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainmenu);
//loading schedule list
Button btn_sche = (Button) findViewById(R.id.btn_schedule);
btn_sche.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(mainmenu.this, Schedule_Activity.class));
}
});
//loading reset password
Button reset = (Button) findViewById(R.id.btn_reset_password);
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(mainmenu.this, resetpassword.class));
}
});
//loading google maps
Button location = (Button) findViewById(R.id.btn_location);
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(mainmenu.this, My_Location.class));
}
});
try {
String user_name = getdate_from_local();
TextView user = (TextView) findViewById(R.id.lbl_name);
user.setText("Welcome : "+user_name+"\n");
} catch (IOException e) {
e.printStackTrace();
}
//getting schedules from api
get_schedule_list();
//show_error_message(jsonfromapi, "Error Occured!");
JSONObject jsonObj = null;
try {
jsonObj = new JSONObject(jsonfromapi);
} catch (JSONException e) {
Log.v("Error in Parser", " " + e);
}
try{
Data = jsonObj.getJSONArray("sehedule");
for (int i = 0; i < Data.length(); i++) {
JSONObject jsonObj2 = Data.getJSONObject(i);
String date = jsonObj2.getString("schedule_date");
String name=jsonObj2.getString("schedule_name");
Toast.makeText(this, date + " - " + name, Toast.LENGTH_LONG).show();
}
}catch(Exception e)
{
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private String readkeyfromfille() throws IOException {
FileInputStream fis = openFileInput("myappkey.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
StringBuffer b = new StringBuffer();
while(bis.available() !=0){
char c = (char) bis.read();
b.append(c);
}
String Key =b.toString();
return Key;
}
public String getdate_from_local() throws IOException {
storedkey = readkeyfromfille();
byte[] data = Base64.decode(storedkey, Base64.DEFAULT);
String key_in_text = new String(data, "UTF-8");
String[] parts = key_in_text.split(Pattern.quote("|"));
String string1 = parts[0]; // 004
String string2 = parts[1];
return string1;
}
private void get_schedule_list(){
try {
jsonfromapi = new MySchedules().execute(storedkey).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
private void show_error_message(String data, String title){
new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(data)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
//async task to get the schedule, visits, items details from remote database
class MySchedules extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... arg0) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://172.16.110.3/agent_tracking/index.php/api/rest/get-schedules/");
try {
// Add your data
List<BasicNameValuePair> nameValuePairs = new ArrayList<>(1);
nameValuePairs.add(new BasicNameValuePair("key", arg0[0]));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
String schedule_list = EntityUtils.toString(entity, "UTF-8");
return schedule_list;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
return null;
}
}
// end of async task
}
谁能帮我从 JSONArray
中获取时间表并一一显示出来。
最佳答案
JSONObject jsonObject = new JSONObject(respons); //Here reponse is the yours server response
JSONObject result = jsonObject.getJSONObject("result");
JSONArray sehedule = result.getJSONArray("sehedule");
for(int i=0;i<sehedule.length();i++)
{
String schedule_id = sehedule.getJSONObject(i).getString("schedule_id");
String schedule_date = sehedule.getJSONObject(i).getString("schedule_date");
String schedule_name = sehedule.getJSONObject(i).getString("schedule_name");
Toast.makeText(context,schedule_date+" "+schedule_date+" "+schedule_name,Toast.LENGTH_LONG).show();
}
关于java - 在 Android 中从 JSON 数组中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309035/
最近开始学习MongoDB。今天老师教了我们 mongoexport 命令。在练习时,我遇到了一个典型的问题,包括教练在内的其他同学都没有遇到过。我在我的 Windows 10 机器上使用 Mongo
我是 JSON Schema 的新手,读过什么是 JSON Schema 等等。但我不知道如何将 JSON Schema 链接到 JSON 以针对该 JSON Schema 进行验证。谁能解释一下?
在 xml 中,我可以在另一个 xml 文件中包含一个文件并使用它。如果您的软件从 xml 获取配置文件但没有任何方法来分离配置,如 apache/ngnix(nginx.conf - site-av
我有一个 JSON 对象,其中包含一个本身是 JSON 对象的字符串。我如何反序列化它? 我希望能够做类似的事情: #[derive(Deserialize)] struct B { c: S
考虑以下 JSON { "a": "{\"b\": 12, \"c\": \"test\"}" } 我想定义一个泛型读取 Reads[Outer[T]]对于这种序列化的 Json import
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 11 个月前关闭。 Improve
我的旧项目在 MySQL 中有 Standard JSON 格式的数据。 对于我在 JS (Node.js) 和 DynamoDB 中的全新项目,关于 Standard JSON格式: 是否建议将其转
JSON 值字符串、数字、true、false、null 是否是有效的 JSON? 即,是 true 一个有效的 JSON 文档?还是必须是数组/对象? 一些验证器接受这个(例如 http://jso
我有一个 JSON 字符串,其中一个字段是文本字段。这个文本字段可以包含用户在 UI 中输入的文本,如果他们输入的文本是 JSON 文本,也许是为了说明一些编码,我需要对他们的文本进行编码,以便它不会
我正在通过 IBM MQ 调用处理数据,当由 ColdFusion 10 (10,0,11,285437) 序列化时,0 将作为 +0.0 返回,它会导致无效的 JSON并且无法反序列化。 stPol
我正在从三个数组中生成一个散列,然后尝试构建一个 json。我通过 json object has array 成功了。 require 'json' A = [['A1', 'A2', 'A3'],
我从 API 接收 JSON,响应可以是 30 种类型之一。每种类型都有一组唯一的字段,但所有响应都有一个字段 type 说明它是哪种类型。 我的方法是使用serde .我为每种响应类型创建一个结构并
我正在下载一个 JSON 文件,我已将其检查为带有“https://jsonlint.com”的有效 JSON 到文档目录。然后我打开文件并再次检查,结果显示为无效的 JSON。这怎么可能????这是
我正在尝试根据从 API 接收到的数据动态创建一个 JSON 对象。 收到的示例数据:将数据解码到下面给出的 CiItems 结构中 { "class_name": "test", "
我想从字符串转换为对象。 来自 {"key1": "{\n \"key2\": \"value2\",\n \"key3\": {\n \"key4\": \"value4\"\n }\n
目前我正在使用以下代码将嵌套的 json 转换为扁平化的 json: import ( "fmt" "github.com/nytlabs/gojsonexplode" ) func
我有一个使用来自第三方 API 的数据的应用程序。我需要将 json 解码为一个结构,这需要该结构具有“传入”json 字段的 json 标签。传出的 json 字段具有不同的命名约定,因此我需要不同
我想使用 JSON 架构来验证某些值。我有两个对象,称它们为 trackedItems 和 trackedItemGroups。 trackedItemGroups 是组名称和 trackedItem
考虑以下案例类模式, case class Y (a: String, b: String) case class X (dummy: String, b: Y) 字段b是可选的,我的一些数据集没有字
我正在存储 cat ~/path/to/file/blah | 的输出jq tojson 在一个变量中,稍后在带有 JSON 内容的 curl POST 中使用。它运作良好,但它删除了所有换行符。我知
我是一名优秀的程序员,十分优秀!